不知道整个 unicode 字符 python
Posted
技术标签:
【中文标题】不知道整个 unicode 字符 python【英文标题】:Not knowing a whole unicode character python 【发布时间】:2021-12-06 20:04:14 【问题描述】:我有一个变量,其中 Unicode 字符是用字符串输入的
print(x)
# output -> '\u062f\u0631 \u0627\u0628\u0644'
print(type(x))
# output -> <class 'str'>
如何在 utf8 中转换 x ?
【问题讨论】:
【参考方案1】:将.encode('raw_unicode_escape').decode('unicode_escape')
用于加倍Reverse Solidi,参见Python Specific Encodings
x= '\\u062f\\u0631 \\u0627\\u0628\\u0644'
print(x, '->', x.encode('raw_unicode_escape').decode('unicode_escape'))
\u062f\u0631 \u0627\u0628\u0644 -> در ابل
【讨论】:
x.encode('ascii').decode('unicode_escape')
就足够了。原始字符串中没有什么可以转义的。
@MarkTolonen 你是对的(对于这个特定的字符串)。但是,如果 x
包含非 ascii 字符,您的解决方案将失败,例如x= '"در ابل" is the same as "\\u062f\\u0631 \\u0627\\u0628\\u0644"'
。所以我更安全……
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 1-2: surrogates not allowed .................. 不是工作:(
@mehdinora 代理是 Unicode 范围从 U+D800
到 U+DFFF
。我在您或我的minimal reproducible example 中看不到任何此类代码点。以上是关于不知道整个 unicode 字符 python的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 中,如何输入 Unicode 基本多语言平面之外的字符?
Unicode / HTML 中是不是有“不可见”的连字符?
系统使用(Python2不支持的) Unicode UTF-8 字符导致 ArcGIS 运行崩毁