
python文件处理之编码字符
存储软件:软件代码及相关数据最初存储在硬盘中。 加载软件:运行时,软件从硬盘读取数据至内存。 执行程序:CPU从内存取指令并执行,生成运行结果。 保存输出:运行结束后,生成的数据再次写入硬盘。 启动编辑器(如Notepad++、PyCharm、Word等)。 读取文件内容至内存。 显示内容至屏幕。 启动Python解释器(类似文本编辑器)。 读取文件内容至内存。 解释并执行代码。 前两个阶段完全一致: 第三阶段处理方式不同: ASCII编码:最初用于英文字符,1字节(8位)对应一个字符。 扩展编码:如GBK、Shift-JIS,支持多语言字符。 Unicode编码:统一字符编码,支持万国字符,2字节(16位)对应一个字符。 将字符转换为二进制数据。 在存储和传输过程中保持一致性。 将二进制数据转换为字符。 解决不同编码格式之间的兼容性问题。 可变长度编码: 兼容性: 新开发的软件和文件应采用UTF-8。 老旧文件需转换为UTF-8后再存储。 文件头编码不匹配:存储时使用的编码与读取时不一致。 默认编码设置:Python默认编码可能与文件存储编码不符。
发布日期:2021-05-04 19:07:09
浏览次数:32
分类:精选文章
本文共 1307 字,大约阅读时间需要 4 分钟。
储备知识
硬件基础
所有软件运行都依赖于硬件支持。现代计算机的核心硬件包括CPU、内存和硬盘。这些硬件在数据存取和处理方面发挥着关键作用。
硬件功能解析
文本处理流程
文本编辑器在读取和存储文本文件时,都涉及字符编码问题。
文本编辑器读取过程
Python解释器执行过程
Python解释器与文本编辑器的异同
相同点
- 从硬盘读取文本内容至内存。
不同点
- 文本编辑器仅显示或编辑内容。
- Python解释器执行代码,需识别语法。
字符编码介绍
字符编码是人类字符与计算机二进制数之间的转换机制。
字符编码的核心概念
Unicode的发展历程
阶段一:ASCII的统治
- 只支持英文字符,1字节对应1个字符。
阶段二:多国字符的混战
- 各国开发了本地编码(如GBK、Shift-JIS)。
- 存取文件时容易出现乱码。
阶段三:统一发展
- Unicode在1990年研发并逐渐普及。
- 提供统一字符对应关系,支持万国字符。
编码与解码机制
编码的作用
解码的作用
UTF-8编码的优势
- 英文字符1字节,中文字符3字节。
- 支持多国字符,且占用空间最少。
UTF-8的适用场景
Python编码应用
Python程序乱码的原因
解决方法
文件头注明编码:
- Python3默认为UTF-8。
- Python2默认为ASCII。
- 建议在文件顶部注明编码格式。
字符串处理:
- Python3中字符串默认为Unicode格式。
- Python2中需在字符串前加
u
或使用unicode
类型。
编码与解码示例
# 示例1:字符串编码与解码data = 'hello world'data_bytes = data.encode('utf-8') # 转换为字节流data_str = data_bytes.decode('utf-8') # 解码为字符串
总结
字符编码是文本存取和处理的基础,正确的编码方式可以避免乱码问题。建议统一使用UTF-8编码,确保不同平台间的文本一致性。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年03月26日 15时55分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
.NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息
2019-03-06
上周热点回顾(7.27-8.2)
2019-03-06
上周热点回顾(9.28-10.4)
2019-03-06
上周热点回顾(5.2-5.8)
2019-03-06
上周热点回顾(5.9-5.15)
2019-03-06
上周热点回顾(8.8-8.14)
2019-03-06
.NET跨平台之旅:将示例站点升级至 .NET Core 1.1 Preview 1
2019-03-06
上周热点回顾(1.16-1.22)
2019-03-06
上周热点回顾(1.23-1.29)
2019-03-06
上周热点回顾(3.20-3.26)
2019-03-06
上周热点回顾(4.24-4.30)
2019-03-06
[故障公告]博客站点1台负载均衡遭遇流量攻击,造成联通与移动用户无法正常访问
2019-03-06
上周热点回顾(5.1-5.7)
2019-03-06
上周热点回顾(6.19-6.25)
2019-03-06
云计算之路-阿里云上:docker swarm 集群故障与异常
2019-03-06
上周热点回顾(2.19-2.25)
2019-03-06
云计算之路-阿里云上:博客web服务器轮番CPU 100%
2019-03-06
云计算之路-阿里云上:服务器CPU 100%问题是memcached连接数限制引起的
2019-03-06
上周热点回顾(3.26-4.1)
2019-03-06