嘻咪吧为您提供生活百科,游戏快讯,软件测评

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

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

工具/原料

Python 3.7win10电脑

操作方法

1先看一个案例,了解何为文件编码及其乱码问题:# 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 和 GB23126Unicode: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、总共有五种编码方式。

职场理财,职场就业相关内容

近期更新