如何从python 3中的Unicode之类的“ \\ u201c借\\ u201d东风”中打印正确的字符?

时间:2019-04-21 06:16:22

标签: python python-3.x unicode

# coding=utf-8
import codecs

str_unicode = "\\u201c借\\u201d东风"
str_bytes = codecs.decode(str_unicode, 'unicode-escape')
print(str_bytes)

在控制台上打印“å”ä¸é£。

3 个答案:

答案 0 :(得分:1)

您没有正确转义字符,您有一个额外的\

>>> print("\u201c借\u201d东风")
“借”东风

答案 1 :(得分:1)

Francisco Couzo正确描述了您的问题。如果可以控制字符串,则应避免转义Unicode字符串中的引号字符。但是我猜测您实际上并没有真正将字符串写为文字,而是从外部源(如文件)获得的。

如果您的Unicode字符串中已经包含多余的转义字符,则可以通过以下方式解决此问题:首先对数据进行编码(使用str.encode),然后从已编码的字符中去除多余的反斜杠,然后最后再次解码:

str_unicode = "\\u201c借\\u201d东风"  # or somefile.read(), or whatever

fixed = str_unicode.encode('unicode-escape').replace(b'\\\\', b'\\').decode('unicode-escape')

print(fixed)  # prints “借”东风

答案 2 :(得分:-2)

Unicode标准包含许多表,这些表列出了字符及其相应的代码点:

0061    'a'; LATIN SMALL LETTER A
0062    'b'; LATIN SMALL LETTER B
0063    'c'; LATIN SMALL LETTER C
...
007B    '{'; LEFT CURLY BRACKET
...
2167    'Ⅶ': ROMAN NUMERAL EIGHT
2168    'Ⅸ': ROMAN NUMERAL NINE
...
265E    '♞': BLACK CHESS KNIGHT
265F    '♟': BLACK CHESS PAWN
...
1F600   '': GRINNING FACE
1F609   '': WINKING FACE
...

您可以在此链接Unicode Python 3上找到有关python 3文档的信息