首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python将中国Unicode代码点转换为字符串

使用Python将中国Unicode代码点转换为字符串
EN

Stack Overflow用户
提问于 2020-02-13 05:06:29
回答 2查看 146关注 0票数 0

我有一个包含来自这里的8105个汉字的Unicode代码点的文件,类似于

代码语言:javascript
复制
U+516D
U+4E03
U+516B

据我所知,这些代表了以下汉字

代码语言:javascript
复制
六 [Chinese character for 'six', Reference http://hanzidb.org/character/%E5%85%AD]
七 [Chinese character for 'seven', Reference http://hanzidb.org/character/%E4%B8%83]
八 [Chinese character for 'eight', Reference http://hanzidb.org/character/%E5%85%AB]

如何使用Python3将包含字符串U+516DU+4E03U+516B的文件转换为相应的汉字?

任何帮助都将不胜感激。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-13 05:42:28

代码语言:javascript
复制
def get_character(string):
    return chr(int(string[2:], 16))
代码语言:javascript
复制
>>> get_character("U+4E03")
'七'
>>> get_character("U+516D")
'六'
>>> get_character("U+4E03")
'七'
>>> get_character("U+516B")
'八'

这是我所知道的最简单的方法,注意它没有检查正确的格式,只是去掉了假设为U+的前两个字符

票数 1
EN

Stack Overflow用户

发布于 2020-02-13 09:51:26

此正则表达式将将U+hhhh格式的文本(4-6个十六进制字符)转换为相应的Unicode代码点:

代码语言:javascript
复制
import re

s = 'U+516D U+4E03 U+516B'

s = re.sub(r'U\+([0-9A-F]{4,6})',lambda m: chr(int(m.group(1),16)),s)
print(s)

输出:

代码语言:javascript
复制
六 七 八
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60200819

复制
相关文章

相似问题

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