python - 从 U+ unicode 字符串定义转换为真正的 unicode 字符

标签 python python-3.x unicode

我有一长串使用 'U+1F49A' 编码约定的 unicode 定义和描述映射。

在 python (3) 中,如何将这些作为真正的 unicode 字符读入? (即 '\u00001F49A' 或 '💚'

我已经尝试过数组切片和组合,例如 '\U000{}'.format('1F49A') 但最终得到 SyntaxError: (unicode error) 'unicodeescape' codec can 't decode bytes in position 0-4: truncated\UXXXXXXXX escape 作为初始字符串实例化在部分 unicode 声明中出现。

最佳答案

您还可以使用 int()解析数字,chr()将数字转换为单字符字符串。

例如:

In [8]: chr(0x1f49a)
Out[8]: '💚'

In [9]: s='U+1F49A'

In [10]: chr(int(s[2:], 16))
Out[10]: '💚'

如果你想把所有的U+xxxx实例转换成一个更大的字符串,你可以使用相同的chr()/int() re.sub() 的第二个参数中的模式:

In [14]: s = 'U+1F49A -vs- U+2764'

In [15]: re.sub(r'U\+([0-9a-fA-F]+)', lambda m: chr(int(m.group(1),16)), s)
Out[15]: '💚 -vs- ❤'

关于python - 从 U+ unicode 字符串定义转换为真正的 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41597657/

相关文章:

python - Django Rest request.data 对象为空

python - 从 pandas DataFrame 定义 pyomo 中的参数

python - TypeError : a bytes-like object is required, 不是 'str' - hmac

string - Swift - 用空格替换字符串中的表情符号

python - 在 sklearn 中绘制类别权重的验证曲线

python - 将 x 轴刻度更改为自定义字符串

python - 预期地捕捉一个垂死的过程

python - 基本的 Python BeautifulSoup 网络抓取 Tripadvisor 评论和数据清理

Python嵌套列表替换字符串中的unicode字符

java - 搜索 unicode 字符串