Python3中字符编码基于Unicode,str为文本类型,bytes为字节类型,通过encode()和decode()实现转换,文件操作需显式指定encoding如utf-8以避免乱码。

Python3 中的字符编码本质上是处理文本和字节之间的转换方式。Python3 默认使用 Unicode 编码来表示字符串,具体实现上采用的是 UTF-8 作为默认的源文件编码和常用编码格式。
字符串与字节的区别
在 Python3 中有两个主要的数据类型需要区分:
- str:表示 Unicode 字符串,存储的是人类可读的文本,比如 "你好"、"Hello"
- bytes:表示字节序列,是计算机实际传输或存储的形式,比如 b'\xe4\xbd\xa0'
字符串要通过编码(encode)转成字节,字节要通过解码(decode)还原成字符串。
常见编码操作方法
实际使用中,你经常需要在字符串和字节之间转换:
立即学习“Python免费学习笔记(深入)”;
- 将字符串编码为字节:
"中文".encode('utf-8')→ 得到 b'\xe4\xb8\xad\xe6\x96\x87' - 将字节解码为字符串:
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')→ 得到 "中文"
如果编码不匹配会导致错误,例如用 gbk 解码一个 UTF-8 的字节流会报 UnicodeDecodeError。
文件读写中的编码处理
读写文本文件时,推荐显式指定编码方式,避免平台差异问题:
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
content = f.read()
写入时也一样:
with open('output.txt', 'w', encoding='utf-8') as f:f.write("包含中文的内容")
如果不指定,Python 会使用系统默认编码(Windows 可能是 gbk,Linux/macOS 通常是 utf-8),容易出错。
如何查看和设置默认编码
可以通过以下代码查看当前默认编码:
import sysprint(sys.getdefaultencoding())
这个值通常是 utf-8,但不能修改。所有字符串操作都基于 Unicode,无需手动设置全局编码。
基本上就这些。只要记住:文本用 str,传输用 bytes,转换靠 encode/decode,读写文件加 encoding 参数,就能避开大多数编码问题。










