Python编程过程中要注意掌握哪几类文件编码?
不论学习哪门计算机语言,都会涉及文件操作,同样就不可避免需要与文件编码打交道与碰到中文乱码的问题。本人就Python学习过程中遇到的5类文件编码及其乱码问题做点分享。
工具/原料
Python 3.7
win10电脑
操作方法
先看一个案例,了解何为文件编码及其乱码问题:
# Python写文件的中文乱码问题
f = open(r"D: est.txt","w")
s = "职说职语 自由职业者 "
f.write(s) # 把字符串 s 写入到文件中
f.close() # 关闭文件
2各类编码间的发展历程及关系鬼敏:
在操作文本文件时,对我们中国的码农而言经常会操作中文,经常会碰到类似的乱码问题。为了让大家有能力解决中文乱码问题,必须先了解一下各种编码之间的关系。
1、编码也是一个逐渐进化与完善的过程;
2、图中从上往下,下面的编码总是能兼容上面的编码;
3、中国人干啥事都能找到自己的解决方案,从计算机打字的输入法到这里的编码规则。
3ASCII编码:
ASCII全称为 American Standard Code for Information Interchange,翻译为“美国信息交换标准代码”。
它是世界上最早最通用的单字节编码系统,主要用来显示现代英语及其他西欧语言,不能表示中文成千上万个的单词。
ASCII 码用 7 位表示,只能表示 128 个字符。由于ASCII 的编码最高位总是 0,所以只定义了128 个字符,用7bit 即可完全编码 。
我在此列出一张某搜索平台检索到的ASCII 标准表。
见图:
4ISO8859-1编码:
ISO-8859-1 又称 Latin-1,是一个 8 位单字节字符集,它把 ASCII 的最高位也利用起来,并兼容了 ASCII,新增的空间是 128,但它并没有完全用完。
在 ASCII 编码之上又增加了西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号,它是向下兼容 ASCII 编码。
见图:
5汉字编码:
GB2312 全称为信息交换用汉字编码字符集,是中国于 1980 年发布,主要用于计算机系统中的汉字处理。GB2312 主要收录了 6763 个汉字、682 个符号。
GB2312覆盖了汉字的大部分使用率,但不能处理像古汉语等特殊的罕用字,所以后来出现了像 BK、B18030 这种编码。
GB2312 完全兼容 ISO8859-1。
GBK全称为 Chinese Internal Code Specification,即汉字内码扩展规范,于 1995 年制定。它主要是扩展了 GB2312,在它的基础上又加了更多的汉字,它一共收录了 21003 个汉字
GB18030现在最新的内码字集于 2000 年发布,并于 2001 年强制执行,包含了中国大部分少数民族的语言字符,收录汉字数超过 70000 余个。它主要采用单字节、双字节、四字节对字符编码,它是向下兼容 GB2312 和 GBK 的,虽然是我国的强制使用标准,但在实际生产中很少用到,用得最多的反而是 GBK 和 GB2312
6Unicode:
Unicode 编码设计成了固定两个字节,所有的字符都用 16 位(2^16=65536)表示,包括之前只占 8 位的英文字符等物帮排,所以会造成空间的浪费,UNICODE 在很长的一段时间内都没有得到推广应用。
Unicode 完全重新设计,不兼容 iso8859-1,也不兼容任何其他编码。
7UTF-8:
对于英文字母,unicode 也需要两个字节来表示。所以 unicode 不便于传输和存储。因此而产生了 UTF 编码,UTF-8 全称是(8-bit UnicodeTransformation Format)。
UTF 编码兼容 iso8859-1 编码,同时也可以用来表示所有语言的字符,不过,UTF 编码是不定长编码,每一个久吐字符的长度从 1-4 个字节不等。其中,英文字母都是用一个字节表示,而汉字使用三个字节。

总结
中文乱码问题解决方案:Windows 操作系统默认的编码是 GBK,Linux 操作系统默认的编码是 UTF-8。当我们用 open()时,调用的是操作系统打开的文件,默认的编码是 GBK。第一步案例是在Windows操作系统下运行,从而出现中文乱码问题。从Python代码方面着手,其解决方案很简单,那就是指定文件的编码方式为UTF-8即可。f = open(r"D: est.txt","w",encoding="utf-8")
1、中文乱码问题只要注意指定编码方式即可规避;2、总共有五种编码方式。
同类经验分享
- 谷歌拼音输入法怎么敲出特殊符号11-26
- 狗狗耳朵清洁护理有什么方法?11-26
- 钉钉如何设置允许非好友查看我的企业认证信息?11-19
- 如何更好地处理婆媳矛盾11-19
- 萌妆的打造方法11-19
- 家具设计之客厅电视柜家具手绘举例11-17
- 小孩很不听话怎么办?11-17
- 汽车美容知识全攻略11-26
- 微信6.6怎么关闭搜一搜07-27
- 怎么做美人鱼手工制作11-26
站内热点
- 谷歌拼音输入法怎么敲出特殊符号11-26
- 狗狗耳朵清洁护理有什么方法?11-26
- 钉钉如何设置允许非好友查看我的企业认证信息?11-19
- 如何更好地处理婆媳矛盾11-19
- 萌妆的打造方法11-19
- 家具设计之客厅电视柜家具手绘举例11-17
- 小孩很不听话怎么办?11-17
- 汽车美容知识全攻略11-26
- 微信6.6怎么关闭搜一搜07-27
- 怎么做美人鱼手工制作11-26
近期更新
- 教你做毛毡元宝吼猴11-25
- 防晒服怎么搭配衣服穿11-25
- 拒绝对方表白,要怎么做?11-25
- 高考生物怎么学最有效11-25
- 如何判断男人对你动了情11-25
- 我们应该怎么对待父母?11-25
- 父母在子女面前应该避讳哪些言形举动11-25
- 怎么让女友不离开自己11-25
- 怎么找通道闸的客户11-25
- 婚后的我们和父母如何相处11-25
- 芋荷梗的做法与步骤11-25
- 同事关系怎么相处11-25