Python如何解决中文乱码
- Python文件头部声明
# -*- coding: utf-8 -*-
# 必须放在文件第一行或第二行
- 中文字符串定义方式
# Python 3
chinese_str = "中文" # 默认就是Unicode# Python 2
chinese_str = u"中文" # 必须加u前缀
- 字符串编码转换黄金法则
# 解码:字节串 → Unicode
byte_str = "中文".encode('utf-8') # 先编码
unicode_str = byte_str.decode('utf-8') # 再解码
- 针对文件读写处理
# 读取文件(自动处理编码)
with open('file.txt', 'r', encoding='utf-8') as f:content = f.read()# 写入文件
with open('file.txt', 'w', encoding='utf-8') as f:f.write("中文内容")
Python 2兼容写法:
import codecs
with codecs.open('file.txt', 'r', 'utf-8') as f:content = f.read()
- Web开发处理:Flask/Django设置
# Flask示例
from flask import Flask
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False # 确保JSON不转义中文# Django settings.py
FILE_CHARSET = 'utf-8'
DEFAULT_CHARSET = 'utf-8'