我希望将一个字符串编码为UTF-8,并查看相应的UTF-8字节。在Python REPL中,以下操作似乎可以正常工作:
>>> unicode('©', 'utf-8').encode('utf-8')
'\xc2\xa9'
请注意,我在这里以U+00A9 COPYRIGHT SIGN为例。代码'
\xC2\xA9
'看起来接近我想要的——一个由两个独立的代码点(U+00C2和U+00A9)组成的字符串。(UTF-8解码后,它会返回原始字符串'\xA9
'。)然后,我希望将UTF-8编码的字符串转换为JSON兼容字符串。然而,以下操作似乎并不符合我的要求:
>>> import json; json.dumps('\xc2\xa9')
'"\\u00a9"'
请注意,它生成了一个包含U+00A9(原始符号)的字符串。相反,我需要UTF-8编码的字符串,在有效的JSON中看起来像
"\u00C2\u00A9"
。简而言之,如何在Python中将
'©'
转换为"\u00C2\u00A9"
? 我觉得我可能错过了一些显而易见的东西 - 难道没有内置的方法可以实现这一点吗?
print
的结果取决于$LANG
环境变量。这会在测试此类内容时引入额外的混淆层面。 - Mathias Bynens