本人电脑win10 64位系统, python版本3.7 若系统与版本不同,以下内容仅供参考
本文章内容非unicode编码字符解码到中文,想看解码的请绕道!
.
.下面开始上内容:
在汉字转拼音中,要用到unicode编码,用于区分各个汉字,取出汉字的四位编码,方便我们构建汉字拼音语音表
1.中文汉字转unicode编码字符,并取出该汉字的四位编码
hanzi="明"
str1=hanzi.encode("unicode_escape")#转字节字符
print(str1)#打印字节字符
bma=str(str1)[-5:][:4]#字节转字符并取出单个字的4位u编码
下面为精简版
hanzi="明"
str1=str(hanzi.encode("unicode_escape"))[-5:][:4]#取单字的4位u编码
.
.
2.自定义编码字符转中文汉字
编码字符范围是:4e00 到 u9ff
无r的字符编码,可以直接print()打印出来,但这种字符编码不可修改变更。
用'\u'+'4e00'自定义组合编码有转义会报错,所以前面要加r。有r的字符编码是不能用print()打印出汉字的,要用专门的编码转换
案例:
str2=r"\u"+"4e00"#自定义汉字编码
wenzi=str2.encode('utf-8').decode('unicode_escape')#编码到汉字
print(wenzi)#打印汉字
.
.
3.案例,手工组合字符编码 并取出该编码的汉字 前16x16个汉字
aas=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
wenzi2=""
for i in range(0,16):
rr2='4e'+aas[i]#组合编码前3位
for o in range(0,16):
wpp=r'\u'+rr2+aas[o]#组完整编码
wenzi2+=wpp.encode('utf-8').decode('unicode_escape')#编码转汉字并存放
print(wenzi2)#打印出所有的汉字
部分字符编码表
U+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
-----------------------------------------------------
4e00 一 丁 丂 七 丄 丅 丆 万 丈 三 上 下 丌 不 与 丏
4e10 丐 丑 丒 专 且 丕 世 丗 丘 丙 业 丛 东 丝 丞 丟
4e20 丠 両 丢 丣 两 严 並 丧 丨 丩 个 丫 丬 中 丮 丯
4e30 丰 丱 串 丳 临 丵 丶 丷 丸 丹 为 主 丼 丽 举 丿
4e40 乀 乁 乂 乃 乄 久 乆 乇 么 义 乊 之 乌 乍 乎 乏
4e50 乐 乑 乒 乓 乔 乕 乖 乗 乘 乙 乚 乛 乜 九 乞 也
.
.
代码来源网络,xiaoyong收集后,理解修改并验证可行。
最后分享一个小技巧:
根据unicode编码来判断字符是否中文:
已做好函数,方便使用。
#判断字符是否中文
#输入:字符 str
#返回:True 中文 , False 非中文
def pandan_chinese(aa):
if '\u4e00' <= aa <= '\u9fff':
return True
else:
return False
.
.
.
给点个赞呗!
.
.
.