66收藏夹 做自己的经验分享

Python编程过程中要注意掌握哪几类文件编码?

阅读:22

不论学习哪门计算机语言,都会涉及文件操作,同样就不可避免需要与文件编码打交道与碰到中文乱码的问题。
本人就Python学习过程中遇到的5类文件编码及其乱码问题做点分享。

工具/原料

Python 3.7

win10电脑

操作方法

1

先看一个案例,了解何为文件编码及其乱码问题

Python写文件的中文乱码问题

f = open(r"D: est.txt","w")

s = "职说职语 自由职业者 "

f.write(s) 把字符串 s 写入到文件中

f.close() 关闭文件

2

各类编码间的发展历程及关系鬼敏

在操作文本文件时,对我们中国的码农而言经常会操作中文,经常会碰到类似的乱码问题。
为了让大家有能力解决中文乱码问题,必须先了解一下各种编码之间的关系。

1、编码也是一个逐渐进化与完善的过程;

2、图中从上往下,下面的编码总是能兼容上面的编码;

3、中国人干啥事都能找到自己的解决方案,从计算机打字的输入法到这里的编码规则。

3

ASCII编码

ASCII全称为 American Standard Code for Information Interchange,翻译为“美国信息交换标准代码”。

它是世界上最早最通用的单字节编码系统,主要用来显示现代英语及其他西欧语言,不能表示中文成千上万个的单词。

ASCII 码用 7 位表示,只能表示 128 个字符。
由于ASCII 的编码最高位总是 0,所以只定义了128 个字符,用7bit 即可完全编码 。

我在此列出一张某搜索平台检索到的ASCII 标准表。

见图

4

ISO88591编码

ISO88591 又称 Latin1,是一个 8 位单字节字符集,它把 ASCII 的最高位也利用起来,并兼容了 ASCII,新增的空间是 128,但它并没有完全用完。

在 ASCII 编码之上又增加了西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号,它是向下兼容 ASCII 编码。

见图

5

汉字编码

GB2312 全称为信息交换用汉字编码字符集,是中国于 1980 年发布,主要用于计算机系统中的汉字处理。
GB2312 主要收录了 6763 个汉字、682 个符号。

GB2312覆盖了汉字的大部分使用率,但不能处理像古汉语等特殊的罕用字,所以后来出现了像 BK、B18030 这种编码。

GB2312 完全兼容 ISO88591。

GBK全称为 Chinese Internal Code Specification,即汉字内码扩展规范,于 1995 年制定。
它主要是扩展了 GB2312,在它的基础上又加了更多的汉字,它一共收录了 21003 个汉字

GB18030现在最新的内码字集于 2000 年发布,并于 2001 年强制执行,包含了中国大部分少数民族的语言字符,收录汉字数超过 70000 余个。
它主要采用单字节、双字节、四字节对字符编码,它是向下兼容 GB2312 和 GBK 的,虽然是我国的强制使用标准,但在实际生产中很少用到,用得最多的反而是 GBK 和 GB2312

6

Unicode

Unicode 编码设计成了固定两个字节,所有的字符都用 16 位(2^16=65536)表示,包括之前只占 8 位的英文字符等物帮排,所以会造成空间的浪费,UNICODE 在很长的一段时间内都没有得到推广应用。

Unicode 完全重新设计,不兼容 iso88591,也不兼容任何其他编码。

7

UTF8

对于英文字母,unicode 也需要两个字节来表示。
所以 unicode 不便于传输和存储。
因此而产生了 UTF 编码,UTF8 全称是(8bit UnicodeTransformation Format)。

UTF 编码兼容 iso88591 编码,同时也可以用来表示所有语言的字符,不过,UTF 编码是不定长编码,每一个久吐字符的长度从 14 个字节不等。
其中,英文字母都是用一个字节表示,而汉字使用三个字节。

总结

中文乱码问题解决方案Windows 操作系统默认的编码是 GBK,Linux 操作系统默认的编码是 UTF8。
当我们用 open()时,调用的是操作系统打开的文件,默认的编码是 GBK。
第一步案例是在Windows操作系统下运行,从而出现中文乱码问题。
从Python代码方面着手,其解决方案很简单,那就是指定文件的编码方式为UTF8即可。
f = open(r"D: est.txt","w",encoding="utf8")

1、中文乱码问题只要注意指定编码方式即可规避;2、总共有五种编码方式。

职场理财,职场就业

情侣创业总是意见不一致怎么样处理

情侣创业总是意见不一致怎么样处理

职场上有何种好习惯值得学习呢?

职场上有何种好习惯值得学习呢?

你是职场巨婴吗?他们都有这样的特点

你是职场巨婴吗?他们都有这样的特点

分类推荐

Excel中怎么批量删除工作表

Excel中怎么批量删除工作表

怎么与办公室的人相处?

怎么与办公室的人相处?

WPS表格怎样使用身份证号出错提示?

WPS表格怎样使用身份证号出错提示?

近期更新

椒花豆腐~~~素拌酸甜

椒花豆腐~~~素拌酸甜

初入职场的人如何更快步入正轨

初入职场的人如何更快步入正轨

Excel表格里面怎么插入多行

Excel表格里面怎么插入多行

版权所有 © 2025 66收藏夹 .All Rights Reserved          备案号:赣ICP备2024045721号-2

免责声明:所有文字、图片等资料均来自互联网,不代表本站赞同其观点,内容仅代表作者本人意见,若因此产生任何纠纷作者本人负责,本站亦不为其版权负责!