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实现的递归神经网络简单示例
Aug 11 Python
Python实现求一个集合所有子集的示例
May 04 Python
儿童学习python的一些小技巧
May 27 Python
pip命令无法使用的解决方法
Jun 12 Python
python实现简易数码时钟
Feb 19 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
Python-Seaborn热图绘制的实现方法
Jul 15 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
Python使用docx模块实现刷题功能代码
Feb 13 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
python属于哪种语言
Aug 16 Python
python字符串拼接+和join的区别详解
Dec 03 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开发注意事项总结
2015/02/04 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
python实现web方式logview的方法
2015/08/10 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
flask session组件的使用示例
2018/12/25 Python
wxPython实现分隔窗口
2019/11/19 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python timeit模块的使用实践
2020/01/13 Python
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
党员2014两会学习心得体会
2014/03/17 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
作风大整顿心得体会
2014/09/10 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
对Golang中的FORM相关字段理解
2021/05/02 Golang
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA