我知道这听起来像是一个重复的问题,但那是因为我不知道如何正确描述这个问题。
出于某种原因,我得到了一堆这样的 unicode 字符串:
a = u'\xcb\xea'
可以看到,实际上是一个汉字的bytes表示,在
gbk
中编码>>> print(b'\xcb\xea'.decode('gbk'))
岁
u'岁'
是我需要的,但我不知道如何将 u'\xcb\xea'
转换为 b'\xcb\xea'
。有什么建议么?
最佳答案
它不是真正的字节表示,它仍然是 unicode 代码点。它们是错误的代码点,因为它是从字节解码的,就好像它被编码为 Latin-1。
编码为Latin 1(其代码点一对一映射到字节),然后解码为GBK:
a.encode('latin1').decode('gbk')
演示:
>>> a = u'\xcb\xea'
>>> a.encode('latin1').decode('gbk')
u'\u5c81'
>>> print a.encode('latin1').decode('gbk')
岁
关于python - 如何在 Python 2 中将字符串转换为字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23521361/