日期:2014-05-16  浏览次数:20748 次

Python操作MySQL以及中文乱码的问题

原创 ? Python操作MySQL以及中文乱码的问题 收藏

Python操作MySQL需要安装Python-MySQL
可以从网上搜索一下,和一般的Python包一样安装

安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用,试验了一下挺好用,
不过又发现了烦人的乱麻问题,最后用了几个办法,解决了!

我用了下面几个措施,保证MySQL的输出没有乱麻:
??? 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)
??? 2 MySQL数据库charset=utf-8
??? 3 Python连接MySQL是加上参数 charset=utf8
??? 4 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)

mysql_test.py

???
# encoding=utf-8
import ?sys
import ?MySQLdb

reload(sys)
sys.setdefaultencoding(
' utf-8 ' )

db
= MySQLdb.connect(user = ' root ' ,charset = ' utf8 ' )
cur
= db.cursor()
cur.execute(
' use mydb ' )
cur.execute(
' select?*?from mytb limit?100 ' )

f
= file( " /home/user/work/tem.txt " , ' w ' )

for ?i? in ?cur.fetchall():