本文共 1308 字,大约阅读时间需要 4 分钟。
了解字符编码的知识储备
一 计算机基础知识
计算机的工作原理基于二进制数系统。人类使用的字符(如文字、符号)无法直接被计算机理解,因此需要通过字符编码将其转换为二进制数,从而在计算机中存储和处理。
文本编辑器存取文件的原理(Notepad++、PyCharm、Word)
文本编辑器在存取文件时,主要完成两个操作:
将文件内容从硬盘读取到内存中(读取文件)。 将内存中的内容写入硬盘(保存文件)。 Python解释器执行PY文件的原理
Python解释器执行PY文件的过程分为三个阶段:
解释器启动:类似于打开文本编辑器。 读取文件内容:将文件内容从硬盘读入内存,解释器不关心文件扩展名。 解释并执行代码:解释器识别语法并执行代码,例如name = "egon"会创建内存空间存放字符串。 Python解释器与文件编辑器的异同
相同点:都读取文件内容到内存中。 不同点:文件编辑器主要用于显示和编辑文本,而解释器读取文件后会解释并执行代码。 字符编码介绍
什么是字符编码
字符编码是将字符(如文字、符号)转换为二进制数的过程。计算机只能理解二进制数,因此需要字符编码来实现字符与二进制数的映射。
字符编码的发展史与分类
ASCII:最初的字符编码,最多支持256个字符,涵盖英文字母、数字和特殊字符。 GBK:为了支持中文,中国开发了GBK编码,每个中文字符占用2个字节。 UTF-8:为了兼容全球字符集,UTF-8使用可变长编码,大多数英文字符占1个字节,中文字符占3个字节。 UTF-8与ASCII的区别
| 字符 | ASCII | UTF-8 |
| A | 01000001 | 01000001 |
| 中 | x | 11100100 10111000 10101101 |
UTF-8兼容ASCII,并且在存储和传输时更高效。
字符编码的应用
文本编辑器之Notepad++
- 读取文件:从硬盘读取文件内容到内存。
- 存文件:将内存中的内容写入硬盘。
- 乱码分析:
- 存文件时乱码:编码格式不一致(如Shift-JIS存GBK文件)。
- 读文件时乱码:选择错误的解码方式。
文本编辑器之PyCharm
PyCharm支持多种编码格式,默认读取文件时会自动检测编码格式。用户可以手动选择编码格式或利用PyCharm的reload功能重新加载文件。
Python程序的三个阶段
启动Python解释器:类似于打开文本编辑器。 读取文件:将文件内容读入内存。 执行代码:解释器解释并执行代码,例如x = '林'会申请内存空间存放字符串。 Python2与Python3字符串类型的区别
- Python2:
- 有两种字符串类型:
str和unicode。 str类型存储字节序列,unicode类型存储Unicode字符。
- Python3:
- 唯一的字符串类型是
str,默认存储Unicode字符。 bytes类型存储字节序列。
总结
字符编码的核心法则:编码与解码必须一致。 内存编码:统一使用Unicode编码,兼容所有语言。 存储与传输编码:优化存储和传输效率,常用UTF-8编码。 通过合理选择编码格式和统一使用Unicode编码,可以避免乱码问题,实现跨平台兼容。
转载地址:http://ioofk.baihongyu.com/