在Python中将转义字符串显示为Unicode

use*_*803 9 python unicode escaping

我已经知道Python几天了.Unicode似乎是Python的一个问题.

我有一个文本文件存储这样的文本字符串

'\u0110\xe8n \u0111\u1ecf n\xfat giao th\xf4ng Ng\xe3 t\u01b0 L\xe1ng H\u1ea1'
Run Code Online (Sandbox Code Playgroud)

我可以读取文件并打印出字符串,但显示不正确.如何正确打印到屏幕,如下所示:

"?èn ?? nút giao thông Ngã t? Láng H?"
Run Code Online (Sandbox Code Playgroud)

提前致谢

Ale*_*lli 8

>>> x=r'\u0110\xe8n \u0111\u1ecf n\xfat giao th\xf4ng Ng\xe3 t\u01b0 L\xe1ng H\u1ea1'
>>> u=unicode(x, 'unicode-escape')
>>> print u
?èn ?? nút giao thông Ngã t? Láng H?
Run Code Online (Sandbox Code Playgroud)

这适用于Mac,其中Terminal.App正确sys.stdout.encoding设置为utf-8.如果您的平台没有正确设置该属性(或根本没有),则需要将最后一行替换为

print u.decode('utf8')
Run Code Online (Sandbox Code Playgroud)

或者您的终端/控制台正在使用的任何其他编码.

请注意,在第一行中,我分配了一个原始字符串文字,以便不会展开"转义序列" - 这只是模仿了x从具有该文字内容的(文本或二进制)文件中读取字节串时会发生什么.


Jon*_*röm 0

尝试这个

\n\n
>>> s=u"\\u0110\\xe8n \\u0111\\u1ecf n\\xfat giao th\\xf4ng Ng\\xe3 t\\u01b0 L\\xe1ng H\\u1ea1"\n>>> print s\n=> \xc4\x90\xc3\xa8n \xc4\x91\xe1\xbb\x8f n\xc3\xbat giao th\xc3\xb4ng Ng\xc3\xa3 t\xc6\xb0 L\xc3\xa1ng H\xe1\xba\xa1\n
Run Code Online (Sandbox Code Playgroud)\n