使用编解码器,unicode_escape()进行Python编码和解码


问题内容

我正在尝试使用该codecs库在python中编码和解码文本。这是我的代码:

>>> import codecs
>>> codecs.unicode_escape_encode('my Text')
(b'my Text', 7)

那我该如何拿回原始代码codecs.unicode_escape_decode()呢?我试过了:

>>> codecs.unicode_escape_decode("(b'my Text', 7)")
("(b'my Text', 7)", 15)

却没有'my text'。如果您需要更多详细信息,请告诉我。


问题答案:

我认为您将错误的内容粘贴回了该函数。正确的用法是:

>>> import codecs
>>> codecs.unicode_escape_encode('my Text')
(b'my Text', 7)
>>> codecs.unicode_escape_decode(b'my Text')
('my Text', 7)

实际上,一个更相关的示例是:

>>> codecs.unicode_escape_encode('Hëllö')
(b'H\\xebll\\xf6', 5)
>>> codecs.unicode_escape_decode(b'H\\xebll\\xf6')
('Hëllö', 11)

在编码版本和解码版本中,“正常”字母都是1:1相同。“特殊”字母有时占用一个以上的字节,因此以其十六进制数字以编码格式表示,例如以编码形式\\xeb表示ë

此处的更多信息:https :
//en.wikipedia.org/wiki/UTF-8