Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6406757
  • 博文数量: 505
  • 博客积分: 12019
  • 博客等级: 上将
  • 技术积分: 6796
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-01 16:46
文章分类

全部博文(505)

文章存档

2021年(3)

2020年(59)

2019年(4)

2018年(10)

2017年(5)

2016年(2)

2015年(4)

2014年(4)

2013年(16)

2012年(47)

2011年(65)

2010年(46)

2009年(34)

2008年(52)

2007年(52)

2006年(80)

2005年(22)

分类: Python/Ruby

2011-02-23 15:53:17

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():
    f.write(str(i))
    f.write(
" ")

f.close()
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
阅读(4417) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-06 16:16:47

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com

chinaunix网友2011-02-26 11:15:39

不错,转走了

chinaunix网友2011-02-24 10:57:23

您好! 我们公司目前正在做IT培训,形式是在线视频形式,我们很想邀请您当我们的讲师。不知您是否有兴趣? 这是我们课程的一个分页面:http://www.china-pub.com/3500428 我的联系方式如下,如果您有兴趣,可以随时联系我。 QQ:389932306