我正在读取从某个库中检索到的泡菜文件。unicode字符串中存储了大量utf-8字符.例如:
u'\xc4\x91' #đ
u'\xc3\xad' #í
u'\xc3\u017d' #�\u017d
...我可以使用raw_unicode_escape编码和显示其中的大多数字符,但是像上面的第三个字符一样,使用\u转义的所有字符都没有正确显示:�\u017d。如何解决这个问题呢?编辑:上面的每个字符串应该是一个字符
编辑2:用于读取文件的代码
model_dir = '../../projects/python/test/model-5'
with open(model_dir, 'rb') as f:
model = pickle.load(f)
seq = model.sequitur
rightI = seq.rightInventory
print repr(rightI.list) 结果包含类似于上述示例的内容。
发布于 2017-08-03 13:15:24
也许试试这个
PYTHONIOENCODING="utf8" python script.py发布于 2017-08-03 13:52:15
您有一个unicode转义字符串。如果您打印它,并且控制台的字体和编码支持它,您将看到以下内容:
>>> sys.stdout.encoding
'UTF-8'
>>> sys.getfilesystemencoding()
'UTF-8'
>>> i
[u'\xc4\x91', u'\xc3\xad', u'\xc3\u017d']
>>> for q in i:
... print(q)
...
Ä
Ã
ÃŽ要确保它们正确地呈现(在屏幕上打印),您需要确保:
如果您看到�,这意味着为应用程序声明的编码不支持特定的代码点,因此系统不知道如何呈现它。
https://stackoverflow.com/questions/45484701
复制相似问题