Python 中文乱码的解决方法
1. 理解编码和解码
Python的字符编码遵循Unicode标准,但在不同的操作系统和编程环境下会有不同的默认字符编码,导致中文输出出现乱码等问题。解决中文输出乱码的问题,需要先理解编码和解码的概念。
- 编码: 把字符转换成字节序列的过程。因为计算机只能处理二进制数据,所以不能直接处理文本,需要先把文本转换为二进制数据。
- 解码: 把二进制数据转换成字符的过程。把接收到的数据转换成程序中使用的编码方式。
2. 设置文件编码
在Python脚本文件的第一行,加上文件编码的设置,一般默认为utf-8:
# -*- coding: utf-8 -*-
3. 指定编码方式
在输出中文时,使用str
的encode()
方法指定编码方式,如下所示:
s = "你好"s.encode('utf-8')
4. 使用字符编码库
Python自带了一些字符编码库,如codecs
、io
等,可以用来处理编码和解码的问题。
import codecsf = codecs.open('filename', 'w', 'utf-8')f.write(u'你好')
以上代码会打开一个名为filename
的文件,以utf-8
格式写入一个包含双字节(英文和汉字用两个字节存储)的字符串。