柚子吧经验网为您提供专业的日常生活经验分享.

柚子吧经验网

为您提供专业的日常生活经验分享

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

整理:babypanda 时间:2025-11-25 阅读:4

不论学习哪门计算机语言,都会涉及文件操作,同样就不可避免需要与文件编码打交道与碰到中文乱码的问题。本人就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

ISO8859-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

6

Unicode:

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

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

7

UTF-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、总共有五种编码方式。

同类经验分享

站内热点

近期更新

版权所有 © 2026 柚子吧经验网 .All Rights Reserved
备案号:赣ICP备2024045721号-1