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中的yield函数的用法
Apr 03 Python
python基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
python交互式图形编程实例(二)
Nov 17 Python
Flask解决跨域的问题示例代码
Feb 12 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
python实现自动发送邮件
Jun 20 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
django从后台返回html代码的实例
Mar 11 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 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
PHP strtotime函数详解
2009/12/18 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
Prototype Function对象 学习
2009/07/12 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
python3音乐播放器简单实现代码
2020/04/20 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
解决python3输入的坑——input()
2020/12/05 Python
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
团支部建设方案
2014/05/02 职场文书
会计专业自荐信
2014/06/03 职场文书
中文专业求职信
2014/06/20 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL