Python3通过encode()和decode()处理中文编码转换,str类型默认为Unicode,与外部交互时需转为bytes;1. 字符串用encode('utf-8')或encode('gbk')转字节;2. 字节用decode('utf-8')或decode('gbk')转回字符串;3. 解码错误可用errors='ignore'或'replace'处理;4. 文件读写需指定encoding参数如encoding='utf-8',确保编解码一致,避免乱码。

Python3 中处理中文编码转换,主要是通过字符串的 encode() 和字节的 decode() 方法来实现。Python3 默认使用 Unicode(即 str 类型),在与外部交互(如文件、网络)时通常需要转为字节流(bytes),这时就涉及编码问题。
1. 字符串转指定编码(encode)
将中文字符串转换为特定编码格式的字节数据,比如 UTF-8、GBK 等:
text = "你好,世界"
utf8_bytes = text.encode('utf-8')
print(utf8_bytes) # 输出: b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c'
gbk_bytes = text.encode('gbk')
print(gbk_bytes) # 输出: b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7'
2. 字节数据转回字符串(decode)
当你接收到字节数据(如从文件或网络读取),需要按正确的编码方式解码为中文字符串:
# 假设收到的是 UTF-8 编码的字节
utf8_data = b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c'
text1 = utf8_data.decode('utf-8')
print(text1) # 输出: 你好,世界
如果是 GBK 编码的字节
gbk_data = b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7'
text2 = gbk_data.decode('gbk')
print(text2) # 输出: 你好,世界
3. 处理编码错误
如果编码不匹配,比如用 UTF-8 解码 GBK 字节,会抛出 UnicodeDecodeError。可以使用 errors 参数处理异常:
立即学习“Python免费学习笔记(深入)”;
程序采用ASP+ACCESS开发完成。中英繁三语言,所有页面采用UTF-8全球通用编码,兼容简体中文、繁体中文及英语,适用于中小企业网站运用。后台数据同时录入中文及英文,繁体采用JS自动转换,无需维护。免费版主要功能如下:·系统管理:系统综合设置、管理员管理、数据库备份、上传文件管理。·单页管理:自由无限制添加个性页面,如:公司简介、组织结构、联系我们等
# 忽略无法解码的字符
text = gbk_data.decode('utf-8', errors='ignore')
替换为 符号
text = gbk_data.decode('utf-8', errors='replace')
4. 文件读写中的中文编码
读写文件时明确指定编码,避免乱码:
# 写入文件
with open('zh.txt', 'w', encoding='utf-8') as f:
f.write("中文内容")
读取文件
with open('zh.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)
基本上就这些。关键是搞清数据当前是 str 还是 bytes,然后用对 encode/decode 和编码格式。常见中文编码是 UTF-8 和 GBK,注意保持一致。










