如何在Python中将unicode转换为其原始字符

如何在Python中将unicode转换为其原始字符,python,unicode,Python,Unicode,我首先尝试输入一个Unicode字符,用UTF-8编码,然后解码回来。Python愉快地返回了原始角色。 我查看了编码字符串,它是b'\xe6\x88\x91'。我不明白这是什么,看起来像3个十六进制数 然后我做了一些研究,发现CJK集合从4E00开始,所以现在我想让Python向我展示这个角色的样子。我该怎么做?我是否需要将4E00转换为类似上述格式的格式?您需要使用UTF-8编码对其进行解码: >>> print(b'\xe6\x88\x91'.decode('UTF-8'

我首先尝试输入一个Unicode字符,用UTF-8编码,然后解码回来。Python愉快地返回了原始角色。 我查看了编码字符串,它是
b'\xe6\x88\x91'
。我不明白这是什么,看起来像3个十六进制数


然后我做了一些研究,发现CJK集合从4E00开始,所以现在我想让Python向我展示这个角色的样子。我该怎么做?我是否需要将4E00转换为类似上述格式的格式?

您需要使用UTF-8编码对其进行解码:

>>> print(b'\xe6\x88\x91'.decode('UTF-8'))
我

通过解码,您将字节(即
b'…'
是什么)转换为Unicode字符串,这就是您可以显示/使用文本的方式。

文本
b'\xe6\x88\x91'
是Unicode码点
\u6211
的utf-8编码的字节的表示形式我. 因此,除了使用
.decode('utf-8')

将某些内容转换为unicode字符串之外,不需要进行任何转换。问题中给出的文本不是用utf-8编码的,而是用windows-1252编码的。使用chardet中的detect函数将显示此内容。@DavidGreydanus:很可能不是,用户已经告诉我们编码为UTF-8,并且将文本显示为windows-1252似乎不会返回有效文本。因此,要将4E00转换为原始字符,我应该怎么做?我不确定4E00是什么,我在这里找到了:将“4E00”转换为字符是一个完全不同的问题。@Xufeng:你真正的问题是什么
'\u4E00'
是中文«one»的unicode表示形式:一. 要将此字符写入磁盘,必须对其进行编码,例如使用UTF-8:
u'\u4E00'.encode('UTF-8')
->
b'\xe4\xb8\x80'