首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何打印像Python3中的"\\u201c借\\u201d东风“这样的unicode中的正确字符?

如何打印像Python3中的"\\u201c借\\u201d东风“这样的unicode中的正确字符?
EN

Stack Overflow用户
提问于 2019-04-21 14:16:22
回答 3查看 612关注 0票数 1
代码语言:javascript
运行
复制
# coding=utf-8
import codecs

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

它会在控制台上打印“§”ägeorégb。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-21 14:31:54

弗朗西斯科·库佐正确地描述了你的问题。如果可以控制字符串,则应避免转义Unicode字符串中的引号字符。但是我猜你实际上并没有把这个字符串写成文字,而是从外部来源(比如文件)得到的。

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

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

Stack Overflow用户

发布于 2019-04-21 14:23:37

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

代码语言:javascript
运行
复制
>>> print("\u201c借\u201d东风")
“借”东风
票数 1
EN

Stack Overflow用户

发布于 2019-04-21 14:28:17

Unicode标准包含许多列出字符及其对应代码点的表:

代码语言:javascript
运行
复制
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上找到

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

https://stackoverflow.com/questions/55780380

复制
相关文章

相似问题

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