【Python】unicode与汉字

一、汉字的正则表达式

2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。

3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。

4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。【一般我们常用的汉字unicode编码,在这个范围中寻找就可以了】

A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。

AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。

F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。

FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。

正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

二、编码转换

 在 Python 中,有 2 种常用的字符串类型,分别为 str 和 bytes 类型,其中 str 用来表示 Unicode 字符bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换。

(1)输入:

s = '卧槽' # python3中,汉字默认以unicode编码方式存储,所以在print打印时会将unicode对应的字符输出
print(s)

输出:

卧槽

(2)输入:

uni1=s.encode('utf-8') # 为字符串s编码,即将汉字的unicode转换为utf-8编码(ASCII)
print(uni1)

输出:

b'\xe5\x8d\xa7\xe6\xa7\xbd' 

(3)输入:

uni11=s.encode('utf-8').decode() # utf-8编码后又解码,得到了汉字的unicode编码,所以print后仍为汉字
print(uni11)

输出:

卧槽

(4)输入:

uni2=s.encode('unicode-escape') # 将汉字的unicodee进行utf-8编码,得到byte类型
print(uni2)

 

encode(‘unicode-escape’)可将此unicode形式的str类型,转换为bytes类型的二进制数(一般为ASCII码)

输出:

b'\\u5367\\u69fd'

(5)输入:

uni22=s.encode('unicode-escape').decode() # 
print(uni22)

decode(‘unicode-escape’)可将内容为unicode形式的bytes类型,转换为str类型的unicode

输出:

\u5367\u69fd

(6)输入:

print('\u5367\u69fd') # 直接输入unicode码,print函数自动转换成汉字输出

输出:

卧槽

参考文章:

【Python | encode中的unicode-escape和raw_unicode_escape】https://blog.csdn.net/weixin_45441279/article/details/107065873
【Python encode()和decode()方法:字符串编码转换】http://c.biancheng.net/view/4305.html

【百度百科:正则表达式】https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215

【正则表达式的汉字匹配】https://www.cnblogs.com/yitian/archive/2008/11/14/1333569.html

【汉字 Unicode 编码范围】https://blog.csdn.net/momodosky/article/details/107546956
【Python对中文字符的处理(utf-8/ gbk/ unicode)】https://blog.csdn.net/chixujohnny/article/details/51782826

【python实现中文和unicode转换】https://blog.csdn.net/weixin_43772166/article/details/108042064



 

posted @ 2022-11-18 13:28  U羊U  阅读(846)  评论(0编辑  收藏  举报