主页 > 综合 > 详情
时讯:第34p,字符编码,文件操作的基础知识

杨数Tos   2023-02-16 12:01:18

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第34篇文章,第二阶段的课程:Python基础知识:Python中的文件操作之字符编码。


(相关资料图)

学习本课程,建议先看一遍:【计算机基础知识】课程。

一、 字符编码介绍

我们打开一个文件并阅读文件的内容,对我们而言是只需点击一下文件就可以了;

但是,文件中包含有中文、英文、数字、标点符号、特殊字符等内容,计算机是如何把这些存储在硬盘中的二进制0和1翻译成为我们能看懂的中文、英文?

这就是字符编码的作用,把计算机中的0和1翻译成全世界不同语言、不同文字。

二、 字符编码发展史与分类(了解即可)

1、一家独大阶段

计算机是由美国人发明的,最早出现的字符编码ASCII也是由美国人发明的;ASCII编码只规定了英文字母数字和一些特殊字符与数字的对应关系;

最多只能用8位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号

ASCII:一个Bytes代表一个字符(英文字符/键盘上的所有其他字符),1Bytes=8bit,8bit可以表示0-2**8-1种变化,即可以表示256个字符

ASCII最初只用了后七位,127个数字,已经完全能够代表键盘上所有的字符了(英文字符/键盘的所有其他字符),后来为了将拉丁文也编码进了ASCII表,将最高位也占用了。

2、各有标准阶段

最初的ASCII编码只能满足英文编译的需求,但是计算机不仅是英文国家使用,像中国、日本、德国、法国等各个国家也都使用计算机,这些国家为了方便自己的使用,都发明了各自的编码标准;

比如我们中国使用的是GBK编码,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里;

3、统一标准阶段

每个国家都有各自的编码标准,就不可避免地出现冲突,在读取多语言的混合文本中,显示出来就会有乱码,为了解决乱码问题,就产生了一种现在全世界通用的编码“utf-8”编码标准;

注:UTF-8(可变长,全称Unicode Transformation Format),对英文字符只用1Bytes表示,对中文字符用3Bytes,对其他生僻字用更多的Bytes去存储。

三、 Python中使用字符编码

1、使用字符编码

在Python文件中,我们可以在文件头写上一行 “# encoding:utf-8 ”即可,Python解释器在读取文件时,会预先读取第一行代码,根据首行代码判断使用什么编码读取文件内容。(也可以使用这种样式“# _*_ encoding:utf-8 _*_”)

2、如何保证不乱码?

很多时候,我们打开文件显示乱码,根本原因就是编写文件时使用的编码与打开文件时使用的编码不一致所导致;

所以,用什么编码标准存储文件,就使用什么编码读取文件,就不会发生乱码问题。

以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。

感谢您的阅读,您的关注点赞就是对我最大的支持,谢谢!

本文由杨数Tos原创,欢迎关注,带你一起长知识。