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错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
python文件的md5加密方法
Apr 06 Python
python并发2之使用asyncio处理并发
Dec 21 Python
Python如何发布程序的详细教程
Oct 09 Python
pycharm新建一个python工程步骤
Jul 16 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
Django微信小程序后台开发教程的实现
Jun 03 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
python的链表基础知识点
Sep 13 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优于Node.js的五大理由分享
2012/09/15 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
js更优雅的兼容
2010/08/12 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
如何用python写一个简单的词法分析器
2018/12/18 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
python tkinter窗口最大化的实现
2019/07/15 Python
简单了解django索引的相关知识
2019/07/17 Python
Django工程的分层结构详解
2019/07/18 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
python实现UDP协议下的文件传输
2020/03/20 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
大一自我鉴定范文
2013/10/04 职场文书
网络事业创业计划书范文
2014/01/09 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
2015年班组长工作总结
2015/04/10 职场文书
机器人总动员观后感
2015/06/09 职场文书
地震捐款简报
2015/07/21 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
如何利用python实现列表嵌套字典取值
2022/06/10 Python