python打印存储在unicode字符串中的utf8字符

2024-09-29 19:28:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在读从某个图书馆检索到的pickle文件。在unicode字符串中存储了大量utf-8字符。例如:

u'\xc4\x91' #đ
u'\xc3\xad' #í
u'\xc3\u017d' #�\u017d
...

我可以使用raw_unicode_escape对它们中的大多数进行编码和显示 但是,所有带有\u转义符的字符(如上面的第三个)都没有正确显示:�\u017d。我该怎么解决呢? 编辑: 上面的每个字符串都应该是一个字符

编辑2:我用来读取文件的代码

^{pr2}$

结果包含与上述示例类似的内容


Tags: 文件字符串编辑raw图书馆unicode字符pickle
2条回答

您有一个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)
...
Ä
í
ÃŽ

要确保正确渲染(在屏幕上打印),需要确保:

  • 对于文件中输入的数据,文件的编码是正确的。在
  • 终端的编码和字体支持字形

如果你看到-这意味着为应用程序声明的编码不支持那个特定的代码点,所以系统不知道如何呈现它。在

试试这个吧

PYTHONIOENCODING="utf8" python script.py

相关问题 更多 >

    热门问题