python sqlobject(mysql)中文乱码解决方法


Posted in Python onNovember 14, 2008

UnicodeEncodeError: 'latin-1' codec can't encode characters in position;
找了一天终于搞明白了,默认情况下,mysql连接的编码是latin-1,你需要指定使用什么编码方式:
connectionForURI(mysql://user:password@localhost:3306/eflow?use_unicode=1&charset=utf8)

Python mysql 中文乱码 的解决方法,有需要的朋友不妨看看。
 
先来看一段代码:

import MySQLdb
db_user = "tiger"

db_pw = "tiger"

db = MySQLdb.connect(host="localhost", user=db_user, passwd=db_pw ,db="finaltldw",charset="gb2312")

c = db.cursor()

c.execute("""select id, name from NODES""")

i=0;

for id, name in c.fetchall():

 print "%2d %s" % (id, name)

 i=i+1

 if i==100:

 break

返回结果:

1 TOP

2 教育

3 机构

4 人

5 地区

6 单位

7 科学研究

8 实验室

9 类型

如果编码是UTF-8

转载一个解决方案: 其中的use db

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

Python 相关文章推荐
Python标准库之多进程(multiprocessing包)介绍
Nov 25 Python
python中实现php的var_dump函数功能
Jan 21 Python
python3简单实现微信爬虫
Apr 09 Python
windows下python之mysqldb模块安装方法
Sep 07 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
python实现公司年会抽奖程序
Jan 22 Python
python中的列表与元组的使用
Aug 08 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
Oct 15 Python
Jupyter安装链接aconda实现过程图解
Nov 02 Python
Python转码问题的解决方法
Oct 07 #Python
Python函数学习笔记
Oct 07 #Python
Python日期操作学习笔记
Oct 07 #Python
wxPython 入门教程
Oct 07 #Python
新手该如何学python怎么学好python?
Oct 07 #Python
Python 调用VC++的动态链接库(DLL)
Sep 06 #Python
Python urlopen 使用小示例
Sep 06 #Python
You might like
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
分享php邮件管理器源码
2016/01/06 PHP
基于php编程规范(详解)
2017/08/17 PHP
PDO::setAttribute讲解
2019/01/29 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
jquery ajax执行后台方法
2010/03/18 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
python中常用的数据结构介绍
2021/01/12 Python
python实现学生通讯录管理系统
2021/02/25 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
为什么要用EJB
2014/04/17 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
恐龙的灭绝教学反思
2014/02/12 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
英雄儿女观后感
2015/06/09 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL