【发布时间】:2017-05-16 04:39:40
【问题描述】:
我想将 unicode 字符串转换为其十六进制表示。
例如,u'\u041a\u0418\u0421\u0410' 应转换为 "\xD0\x9A\xD0\x98\xD0\xA1\xD0\x90"。我尝试了下面的代码(python 2.7):
unicode_username.encode("utf-8").encode("hex")
但是,我得到一个字符串:
'd09ad098d0a1d090'
有什么建议可以让我获得\xD0\x9A\xD0\x98\xD0\xA1\xD0\x90?
【问题讨论】:
-
不要进行第二次编码。
unicode_username.encode("utf-8")->'\xd0\x9a\xd0\x98\xd0\xa1\xd0\x90'. -
第二个编码不适用于 Python3,因为第一个编码返回的字节对象没有任何
.encode()方法。使用unicode_username.encode('utf-8').hex()获取十六进制 ASCII 文本字符串。
标签: python python-2.7 unicode