Python 中文乱码的解决方法

1. 理解编码和解码

Python的字符编码遵循Unicode标准,但在不同的操作系统和编程环境下会有不同的默认字符编码,导致中文输出出现乱码等问题。解决中文输出乱码的问题,需要先理解编码和解码的概念。

  • 编码: 把字符转换成字节序列的过程。因为计算机只能处理二进制数据,所以不能直接处理文本,需要先把文本转换为二进制数据。
  • 解码: 把二进制数据转换成字符的过程。把接收到的数据转换成程序中使用的编码方式。

2. 设置文件编码

在Python脚本文件的第一行,加上文件编码的设置,一般默认为utf-8:

# -*- coding: utf-8 -*-

3. 指定编码方式

在输出中文时,使用strencode()方法指定编码方式,如下所示:

s = "你好"s.encode('utf-8')

4. 使用字符编码库

Python自带了一些字符编码库,如codecsio等,可以用来处理编码和解码的问题。

import codecsf = codecs.open('filename', 'w', 'utf-8')f.write(u'你好')

以上代码会打开一个名为filename的文件,以utf-8格式写入一个包含双字节(英文和汉字用两个字节存储)的字符串。

示例