学习python处理python编码问题
admin
2023-07-31 02:03:32
0

概括、从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、举例:例如我们要向终端输出\”我是中国人\”。
复制代码 代码如下:
#coding=utf-8 告诉python解释器用的是utf-8编码,我用的是eclipse+pydev
print \”我是中国人\” #源文件本身也要存成UTF-8编码

三、编码的转换,两种编码的转换要用UTF-16作为中转站。
举例:如果有一个文本文件jap.txt,里面有内容 \”私は中国人です。\”,编码格式是日文编码SHIFT_JIS,
还有一个文本文件chn.txt,内容是\”中华人民共和国\”,编码格式是中文编码GB2312。
我们如何把两个文件里的内容合并到一起并存储到utf.txt中并且不显示乱码呢,可以采用把两个文件的内容都转成UTF-8格式,因为UTF-8里包含了中文编码和日文编码。
复制代码 代码如下:
#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\”)#编码方式大小写都行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\”)) #如果没有decode则显示乱码
label1.grid()
root.mainloop()

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

相关内容

Python编码爬坑指南(...
自己最近有在学习python,这实在是一门非常短小精悍的语言,很喜...
2023-08-02 02:43:03
python编码总结(编码...
本文详细总结了python编码。分享给大家供大家参考,具体如下: ...
2023-08-01 23:28:21
python编码总结(编码...
本文详细总结了python编码。分享给大家供大家参考,具体如下: ...
2023-08-01 23:25:13
python编码总结(编码...
本文详细总结了python编码。分享给大家供大家参考,具体如下: ...
2023-08-01 23:20:56
Python编码类型转换方...
本文实例讲述了Python编码类型转换方法。分享给大家供大家参考,...
2023-08-01 23:20:54
python3编码问题汇总
这两天写了个监测网页的爬虫,作用是跟踪一个网页的变化,但运行了一晚...
2023-08-01 11:48:55

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
python返回昨天日期的方法 本文实例讲述了python返回昨天日期的方法。分享给大家供大家参考。具体实现方法如下: #-*-co...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 常见... 什么是 Apache Doris Apache Doris 是一款 MPP 架构的 OLAP 列式存...
在SSIS 中使用 Web S... Web Service简介 Web Service是一种构建应用程序的普遍模型,可以在任何支持网络通...
Python函数中*args和... 单星号形式(*args)用来传递非命名键可变参数列表。双星号形式(**kwargs)用来传递键值可变...