python中unicode编码表_python中的unicode编码
概括、从python1.6开始就可以处理unicode字符了。
⼀、⼏种常见的编码格式。
1.1、ascii,⽤1个字节表⽰。
1.2、UTF-8,⽤1个⾄三个字节表⽰,表⽰ascii码时只占⽤1个字节,ascii编码是UTF-8的⼦集。
python新手代码大全pdf1.3、UTF-16,⽤2个字节表⽰,在python中,unicode的含义就是UTF-16。
⼆、python源⽂件的编码与解码,我们写的python程序从产⽣到执⾏的过程如下:
编辑器---->源代码---->解释器---->输出结果
2.1、编辑器决定源代码的编码格式(在编辑器中设定)
2.2、也必须要解释器知道源代码的编码格式(很遗憾很难从编码的数据获知源⽂件的编码格式)
2.3、补充:在Windows下当⽤UltraEdit把源代码存成UTF-8时,会在⽂件中记录BOM标志(不必祥究)这
样ActivePython解释器会⾃动识别源⽂件是UTF-8格式,但是如果⽤eclipse编辑源⽂件,虽然在编辑器中指定⽂件编码为UTF-8,但是因为没有记⼊BOM标志,所以必须在源⽂件开始处加上#coding=utf-8,⽤注释来提⽰解释器源⽂件的编码⽅式挺有意思。
2.4、举例:例如我们要向终端输出"我是中国⼈"。
#coding=utf-8 告诉python解释器⽤的是utf-8编码,我⽤的是eclipse+pydev
print "我是中国⼈" #源⽂件本⾝也要存成UTF-8编码
2.5、当然我们可以⽤其他unicode编码,例如GB2312,SHIFT_JIS等等,但是建议⽤UTF-8,表⽰的字符更多,例如能同时显⽰中⽂和⽇⽂字符。
三、编码的转换,两种编码的转换要⽤UTF-16作为中转站。
举例:如果有⼀个⽂本⽂件,⾥⾯有内容 "私は中国⼈です。",编码格式是⽇⽂编码SHIFT_JIS,
还有⼀个⽂本⽂件,内容是"中华⼈民共和国",编码格式是中⽂编码GB2312。
我们如何把两个⽂件⾥的内容合并到⼀起并存储到中并且不显⽰乱码呢,可以采⽤把两个⽂件的内容都转成UTF-8格式,因为UTF-8⾥包含了中⽂编码和⽇⽂编码。
#coding=utf-8
try:
JAP=open("e:/","r")
CHN=open("e:/","r")
UTF=open("e:/","w")
jap_adline()
chn_adline()
#先decode成UTF-16,再encode成UTF-8
jap_text_utf8=jap_text.decode("SHIFT_JIS").encode("UTF-8") #不转成utf-8也可以
chn_text_utf8=chn_text.decode("GB2312").encode("UTF-8")#编码⽅式⼤⼩写都⾏utf-8也⼀样
UTF.write(jap_text_utf8)
UTF.write(chn_text_utf8)
except IOError,e:
print "open file error",e
四、Tk库⽀持ascii,UTF-16,UTF-8
#coding=utf-8
from Tkinter import *
try:
JAP=open("e:/","r")
adline()
except IOError,e:
print "open file error",e
root=Tk()
label1=Label(root,text=str1.decode("SHIFT_JIS")) #如果没有decode则显⽰乱码id()
root.mainloop()
五、字符串相关
1、默认情况下字符串的编码格式和源码的编码格式⼀致。
2、如果在字符串前⾯加上u,则字符串会采⽤unicode编码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论