不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
百科|常识分享
分享各种百科|日常
手表常识网 > 餐饮行业新闻资讯 > 综合信息 >  麦子学院教你学习python处理python编码


  • 【莆田鞋厂家分类】
  • 【奢侈大牌包包厂家分类】
  • 【潮牌奢侈服饰鞋子厂家分类】
  • 【名表厂家分类】

厂家货源分类区域

麦子学院教你学习python处理python编码

发布时间:2024-10-17 07:55:45  来源:互联网整理  浏览:   【】【】【

麦子学院教你学习python处理python编码 

  近日,麦子学yuànSundy老师在他de公开课中提到:从python1.6开始就可以处理unicode字符了。下面我们就这问题首先介绍几种常见debiān码格shì

  1.1、ascii,用1字节biǎo示。

  1.2、UTF-8,用1至三字节biǎo示,biǎo示ascii码时只占用1字节,asciibiānshìUTF-8de子集。

  1.3、UTF-16,用2字节biǎo示,在python中,unicodede含义就shìUTF-16。

  二、python源文件debiān码与解码,我们写depython程序从产生到执行de过程如下:

  biān器----源代码----解释器----输出结果

  2.1、biān器决定源代码debiān码格shì(在biān器中设定)

  2.2、也必须要解释器知道源代码debiān码格shìhěn遗憾hěn难从biānde数据huò知源文件debiān码格shì

  2.3、补充:在Windows下当用UltraEdit把源代码cún成UTF-8时,会在文件中记录BOM标志(不必祥究)这样ActivePython解释器会自动识别源文件shìUTF-8格shì,但shì如果用eclipsebiān源文件,虽然在biān器中指定文件biān码为UTF-8,但shì因为没yǒu记入BOM标志,所以必须在源文件开始处加上#coding=utf-8,用注释来提示解释器源文件debiān码方shìyǒu意思。

  2.4、举例:例如我们要向终端输出"我shì中国人"。

  #coding=utf-8 告诉python解释器用deshìutf-8biān码,我用deshìeclipse+pydev

  print "我shì中国人" #源文件本身也要cún成UTF-8biān

  三、biānde转换,两种biānde转换要用UTF-16作为中转站。

  举例:如果yǒu文本文件jap.txt,里面yǒu内容 "私は中国人です。",biān码格shìshì日文biān码SHIFT_JIS,

  还yǒu文本文件chn.txt,内容shì"中华人民共和国",biān码格shìshì中文biān码GB2312。

  我们如何把两文件里de内容并到一起并cún储到utf.txt中并且不显示乱码呢,可以采用把两文件de内容都转成UTF-8格shì,因为UTF-8里包含了中文biān码和日文biān码。

  #coding=utf-8

  try:

  JAP=open("e:/jap.txt","r")

  CHN=open("e:/chn.txt","r")

  UTF=open("e:/utf.txt","w")

  jap_text=JAP.readline()

  chn_text=CHN.readline()

  #先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")#biān码方shì大小写都行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:/jap.txt","r")

  str1=JAP.readline()

  except IOError,e:

  print "open file error",e

  root=Tk()

  label1=Label(root,text=str1.decode("SHIFT_JIS")) #如果没yǒudecode则显示乱码

  label1.grid()

  root.mainloop()

  以上shì麦子学yuàn老师总结de学习python处理pythonbiānde基本过程,望对大家yǒu帮助。更多视频教程,请登录麦子学yuàn官网查询(/)

[db:内容]?

责任编辑:
热门阅读排行
© 手表常识网