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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
Python常用模块介绍
Nov 21 Python
python使用post提交数据到远程url的方法
Apr 29 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
python删除不需要的python文件方法
Apr 24 Python
对Python中type打开文件的方式介绍
Apr 28 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
python实现猜数字游戏
Mar 25 Python
基于pandas向csv添加新的行和列
May 25 Python
python代码能做成软件吗
Jul 24 Python
python设置中文界面实例方法
Oct 27 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
PHP中的日期处理方法集锦
2007/01/02 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
python实现的jpg格式图片修复代码
2015/04/21 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
python SVD压缩图像的实现代码
2019/11/05 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
Windows和Linux动态库应用异同
2016/07/28 面试题
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
奥巴马获胜演讲稿
2014/05/15 职场文书
授权委托书
2014/09/17 职场文书
寒山寺导游词
2015/02/03 职场文书
小学班主任工作随笔
2015/08/15 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android