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),这时就涉及编码问题。
将中文字符串转换为特定编码格式的字节数据,比如 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'
<p>gbk_bytes = text.encode('gbk')
print(gbk_bytes) # 输出: b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7'</p>当你接收到字节数据(如从文件或网络读取),需要按正确的编码方式解码为中文字符串:
# 假设收到的是 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) # 输出: 你好,世界
<h1>如果是 GBK 编码的字节</h1><p>gbk_data = b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7'
text2 = gbk_data.decode('gbk')
print(text2) # 输出: 你好,世界</p>如果编码不匹配,比如用 UTF-8 解码 GBK 字节,会抛出 UnicodeDecodeError。可以使用 errors 参数处理异常:
立即学习“Python免费学习笔记(深入)”;
本文档主要讲述的是j2me3D游戏开发简单教程; 如今,3D图形几乎是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息而获得了成功。如前文中所述,以立即模式和手工编码建立所有的3D对象的方式进行开发速度很慢且很复杂。应用程序中多边形的所有角点必须在数组中独立编码。在JSR 184中,这称为立即模式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
# 忽略无法解码的字符
text = gbk_data.decode('utf-8', errors='ignore')
<h1>替换为 符号</h1><p>text = gbk_data.decode('utf-8', errors='replace')</p>读写文件时明确指定编码,避免乱码:
# 写入文件
with open('zh.txt', 'w', encoding='utf-8') as f:
f.write("中文内容")
<h1>读取文件</h1><p>with open('zh.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)</p>基本上就这些。关键是搞清数据当前是 str 还是 bytes,然后用对 encode/decode 和编码格式。常见中文编码是 UTF-8 和 GBK,注意保持一致。
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号