最近项目中用到了Python,遇到了中文乱码问题,结合网上的资料以及自己的摸索,总结如下:
- Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8), 同时文件保存的格式也应该是utf8
- MySQL数据库charset=utf-8 ,数据库的编码必须是utf8
- python连接MySQL时加上编码参数 conn = MySQLdb.Connection(host='localhost', user='root', passwd='123', db='test',charset='utf8')
- 设置Python默认编码(个人感觉此无太多意义)
reload(sys)
sys.setdefaultencoding('utf-8')
以上为网上普遍的步骤,但在我的代码仍然是乱码,于是我增加下面的操作,将查询结果转换为字符串,再把字符串编码为utf8。搞定!
tmp = str(row[2])
tmp = tmp.decode('utf-8')