1

这是python激活模式下的代码:

>>> s = u'赵孟頫'
>>> s.encode('gbk')
'\xd5\xd4\xc3\xcf\xee\\'

为什么 GBK 字符串后面有反斜杠?

4

1 回答 1

1
In [8]: '\xd5\xd4\xc3\xcf\xee\\' == '\xd5\xd4\xc3\xcf\xee\x5c'
Out[8]: True

尾随反斜杠只是 byte '\x5c'

In [9]: hex(ord('\\'))
Out[9]: '0x5c'

In [10]: '\x5c'
Out[10]: '\\'

字符串只是一个字节序列,最后一个字节恰好与以 ASCII 编码的反斜杠相同。当 Python 打印字符串的 repr 时,它会尽可能将字节转换为可打印的 ASCII 字符。

于 2013-07-10T10:20:53.313 回答