码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2014-09-07 18:29:45      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:http   os   使用   ar   for   文件   数据   div   问题   

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
   

bubuko.com,布布扣#encoding=utf-8
bubuko.com,布布扣import sys
bubuko.com,布布扣import MySQLdb
bubuko.com,布布扣
bubuko.com,布布扣reload(sys)
bubuko.com,布布扣sys.setdefaultencoding(‘utf-8‘)
bubuko.com,布布扣
bubuko.com,布布扣db=MySQLdb.connect(user=‘root‘,charset=‘utf8‘)
bubuko.com,布布扣cur=db.cursor()
bubuko.com,布布扣cur.execute(‘use mydb‘)
bubuko.com,布布扣cur.execute(‘select * from mytb limit 100‘)
bubuko.com,布布扣
bubuko.com,布布扣f=file("/home/user/work/tem.txt",‘w‘)
bubuko.com,布布扣
bubuko.com,布布扣for i in cur.fetchall():
bubuko.com,布布扣    f.write(str(i))
bubuko.com,布布扣    f.write(" ")
bubuko.com,布布扣
bubuko.com,布布扣f.close()
bubuko.com,布布扣cur.close()


上面是linux上的脚本,windows下运行正常!

注:MySQL的配置文件设置也必须配置成utf8

设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都设置默认的字符集(通常在/etc/mysql/my.cnf): 

[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8

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

标签:http   os   使用   ar   for   文件   数据   div   问题   

原文地址:http://www.cnblogs.com/lixiuran/p/3960592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!