# coding=utf-8
import codecs
str_unicode = "\\u201c借\\u201d东风"
str_bytes = codecs.decode(str_unicode, 'unicode-escape')
print(str_bytes)
它会在控制台上打印“§”ägeorégb。
发布于 2019-04-21 14:31:54
弗朗西斯科·库佐正确地描述了你的问题。如果可以控制字符串,则应避免转义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 “借”东风
发布于 2019-04-21 14:23:37
您没有正确转义字符,您有一个额外的\
>>> print("\u201c借\u201d东风")
“借”东风
发布于 2019-04-21 14:28:17
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
...
您可以在Python3文档的这个链接Unicode Python 3上找到
https://stackoverflow.com/questions/55780380
复制相似问题