随笔-167  评论-8  文章-0  trackbacks-0

1 )字符集、编码和中文字符集

字符集的意思是指二进制编码(比如:DE 8F 1A 90)对应什么字符(比如:连通)。而编码方式是指二进制编码如何在计算机上存储。比如:UTF-16是用两个字节来存储一个unicode编码(DE 8F 1A 90);UTF-8使用1-3个字节来存储一个unicode编码(E8 BF 9E E9 80 9A )。

unicode如果理解成字符集,则是指它用来表示世界上所有语言的字符。标准的unicode编码方式称为UTF-16,一般都简称unicode编码,用2个字节表示每个字符。

UTF-8 是unicode字符集的一种编码方式,为了使得双字节的unicode能够在现存的处理单字节的系统上正确传输。用1-3个字节来表示每个字符,对于英文字母用1个字节,对于中文使用3个字节.对于>127的编码,高位都为1

GBK 收录21886字符,编码方式为用2个字节来标示中、英字符。对于中文,最高位设置成1,包含所有中文

GB2312比GBK包含的汉字要少,6763汉字+682其他字符,编码方式相同

GBK18030比GBK包含的汉字还要多,27484汉字和其他少数民族文字,编码方式相同

按照GBK18030、GBK、GB2312的顺序,3种编码是向下兼容,同一个汉字在三个编码方案中是相同的编码

2 )python 中的字符和中文处理的一些注意事项

(1)python要安装相应的编码库(比如gbk)之后,才能够使用这种编码

(2)python中unicode编码转换

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。

unicode(s, "gbk")函数也可以用来

(3)如果文件里有非ASCII字符,需要在第一行或第二行(在第三行就不行)指定编码声明

(4)unicode编码的字符串长度的时候,看到几个字符,打印出来的长度就是几


posted on 2009-07-30 13:03 老马驿站 阅读(687) 评论(0)  编辑 收藏 引用 所属分类: python