我对 Unicode 的十六进制表示感到困惑。我有一个示例文件,其中包含一个数学积分符号字符。那是 U+222B 如果我 cat 文件或在 vi 中编辑它,我会显示一个积分符号。该文件的十六进制转储显示其十六进制内容为 88e2 0aab
在 python 中,我可以创建一个完整的 unicode 字符并在我的终端上打印 p 渲染和整数符号。
>>> p=u'\u222b'
>>> p
u'\u222b'
>>> print p
∫
让我困惑的是我可以打开一个带有积分符号的文件,得到积分符号但十六进制内容不同。
>>> c=open('mycharfile','r').read()
>>> c
'\xe2\x88\xab\n'
>>> print c
∫
一个是 Unicode 对象,一个是纯字符串,但是对于同一个字符,这两个十六进制代码之间的关系是什么?我将如何手动将一个转换为另一个?