学习python处理python编码

 概括、从python1.6开始就可以处理unicode字符了。

成都创新互联公司专注于网站建设|成都网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖塔吊租赁等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身设计品质网站。

一、几种常见的编码格式。

1.1、ascii,用1个字节表示。

1.2、UTF-8,用1个至三个字节表示,表示ascii码时只占用1个字节,ascii编码是UTF-8的子集。

1.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、举例:例如我们要向终端输出"我是中国人"。

 
 
 
  1. #coding=utf-8     告诉python解释器用的是utf-8编码,我用的是eclipse+pydev   
  2. print "我是中国人"  #源文件本身也要存成UTF-8编码  

三、编码的转换,两种编码的转换要用UTF-16作为中转站。

举例:如果有一个文本文件jap.txt,里面有内容 "私は中国人です。",编码格式是日文编码SHIFT_JIS,

还有一个文本文件chn.txt,内容是"中华人民共和国",编码格式是中文编码GB2312。

我们如何把两个文件里的内容合并到一起并存储到utf.txt中并且不显示乱码呢,可以采用把两个文件的内容都转成UTF-8格式,因为UTF-8里包含了中文编码和日文编码。

 
 
 
  1. #coding=utf-8   
  2.   
  3. try:   
  4.     JAP=open("e:/jap.txt","r")   
  5.     CHN=open("e:/chn.txt","r")   
  6.     UTF=open("e:/utf.txt","w")   
  7.        
  8.     jap_text=JAP.readline()   
  9.     chn_text=CHN.readline()   
  10.     #先decode成UTF-16,再encode成UTF-8   
  11.     jap_text_utf8=jap_text.decode("SHIFT_JIS").encode("UTF-8") #不转成utf-8也可以   
  12.     chn_text_utf8=chn_text.decode("GB2312").encode("UTF-8")#编码方式大小写都行utf-8也一样   
  13.     UTF.write(jap_text_utf8)   
  14.     UTF.write(chn_text_utf8)   
  15.        
  16. except IOError,e:   
  17.     print "open file error",e  

四、Tk库支持ascii,UTF-16,UTF-8

 
 
 
  1. #coding=utf-8   
  2.   
  3. from Tkinter import *   
  4.   
  5. try:   
  6.     JAP=open("e:/jap.txt","r")   
  7.     str1=JAP.readline()   
  8.   
  9. except IOError,e:   
  10.     print "open file error",e   
  11.   
  12. root=Tk()   
  13.   
  14. label1=Label(root,text=str1.decode("SHIFT_JIS")) #如果没有decode则显示乱码   
  15. label1.grid()   
  16.   
  17. root.mainloop()  

以上是学习python处理python编码的基本过程,希望对大家有帮助。

当前名称:学习python处理python编码
文章出自:http://www.mswzjz.com/qtweb/news28/192128.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联