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使用urllib2获取网络资源实例讲解
Dec 02 Python
Python中函数的用法实例教程
Sep 08 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 Python
python人民币小写转大写辅助工具
Jun 20 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
python tkinter窗口最大化的实现
Jul 15 Python
python字符串反转的四种方法详解
Dec 02 Python
Python使用psutil获取进程信息的例子
Dec 17 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python3实现简单飞机大战
Nov 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
javascript新闻跑马灯实例代码
2020/07/29 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
python连接oracle数据库实例
2014/10/17 Python
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
python字典的常用方法总结
2019/07/31 Python
Python内置类型性能分析过程实例
2020/01/29 Python
Python json格式化打印实现过程解析
2020/07/21 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
学生打架检讨书
2014/10/20 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
遗失说明具结保证书
2015/02/26 职场文书
Go 语言结构实例分析
2021/07/04 Golang
用JS创建一个录屏功能
2021/11/11 Javascript
使用Ajax实现无刷新上传文件
2022/04/12 Javascript