Python随机⽣成中⽂字符的⽅法
第⼀种⽅法:Unicode码
在unicode码中,汉字的范围是(0x4E00, 9FBF)
import random
def Unicode():
val = random.randint(0x4e00, 0x9fbf)
return chr(val)
1
2
3
4
5
这个⽅法⽐较简单,但是有个⼩问题,unicode码中收录了2万多个汉字,包含很多⽣僻的繁体字。
第⼆种⽅法:GBK2312
gbk2312对字符的编码采⽤两个字节相组合,第⼀个字节的范围是0xB0-0xF7, 第⼆个字节的范围是0xA1-0xFE.
更新:
值得注意的是,对于第55区,D7FA-D7FE的5个是没有编码的,需要在两个字节组合的范围中特意剔除⼀下。
对GBK2312编码⽅式详细的解释请参看(参考⽂献3)()。
import random
def GBK2312():
head = random.randint(0xb0, 0xf7)
body = random.randint(0xa1, 0xfe)
val = f'{head:x}{body:x}'
str = bytes.fromhex(val).decode('gb2312')
return str
1
2
3
4
5
6
7
8
GBK2312收录了6千多常⽤汉字.两种⽅法的取舍就看需求了。
pyhon encode和decode函数
Python2.x中默认的编码的基础类型是unicode编码的类型,在Python3.x才转化为基于unicode的字符串。
那么我们在Python2.x的学习中就会遇到各种各样的编码问题,encode和decode函数就是很好的帮我们解决这样问题的⼯具。下⾯的程序中有详细的介绍和例⼦!
在Python2.x中:
u = u'中⽂' #显⽰指定unicode类型对象u
str = u.encode('gb2312') #以gb2312编码对unicode对像进⾏编码
str1 = u.encode('gbk') #以gbk编码对unicode对像进⾏编码
str2 = u.encode('utf-8') #以utf-8编码对unicode对像进⾏编码
u1 = str.decode('gb2312')#以gb2312编码对字符串str进⾏解码,以获取unicode
u2 = str.decode('utf-8')#如果以utf-8的编码对str进⾏解码得到的结果,将⽆法还原原来的unicode类型
1
2
3
4
5
6
在Python3.x中:
u = '中⽂' #指定字符串类型对象u
str = u.encode('gb2312') #以gb2312编码对u进⾏编码,获得bytes类型对象str
u1 = str.decode('gb2312')#以gb2312编码对字符串str进⾏解码,获得字符串类型对象u1
u2 = str.decode('utf-8')#如果以utf-8的编码对str进⾏解码得到的结果,将⽆法还原原来的字符串内容
中文字符unicode查询1
2
3
4
但是我们在读取、写⼊⽂件的时候就要注意以⽂件的格式来判断⽤什么⽅式来操作了,txt⽂件默认都是utf-8当然你也可以⾃⼰设定编码格式。
我们在对txt⽂件进⾏操作时,最好都将编码格式转化为utf-8来⽅便操作吧!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论