首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python打印utf-8字符存储在unicode字符串中

python打印utf-8字符存储在unicode字符串中
EN

Stack Overflow用户
提问于 2017-08-03 12:49:36
回答 2查看 2.2K关注 0票数 1

我正在读取从某个库中检索到的泡菜文件。unicode字符串中存储了大量utf-8字符.例如:

代码语言:javascript
复制
u'\xc4\x91' #đ
u'\xc3\xad' #í
u'\xc3\u017d' #�\u017d
...

我可以使用raw_unicode_escape编码和显示其中的大多数字符,但是像上面的第三个字符一样,使用\u转义的所有字符都没有正确显示:�\u017d。如何解决这个问题呢?编辑:上面的每个字符串应该是一个字符

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

代码语言:javascript
复制
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) 

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

EN

回答 2

Stack Overflow用户

发布于 2017-08-03 13:15:24

也许试试这个

代码语言:javascript
复制
PYTHONIOENCODING="utf8" python script.py
票数 0
EN

Stack Overflow用户

发布于 2017-08-03 13:52:15

您有一个unicode转义字符串。如果您打印它,并且控制台的字体和编码支持它,您将看到以下内容:

代码语言:javascript
复制
>>> 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)
...
Ä
í
ÃŽ

要确保它们正确地呈现(在屏幕上打印),您需要确保:

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

如果您看到�,这意味着为应用程序声明的编码不支持特定的代码点,因此系统不知道如何呈现它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45484701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档