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 返回汉字的汉语拼音
Feb 27 Python
Python MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
Python解析json文件相关知识学习
Mar 01 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
详解python单元测试框架unittest
Jul 02 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
用Python实现职工信息管理系统
Dec 30 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无限分类的类
2007/01/02 PHP
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
Vue组件选项props实例详解
2017/08/18 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python跳出循环语句continue与break的区别
2014/08/25 Python
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
Python的条件语句与运算符优先级详解
2015/10/13 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
Python是什么 Python的用处
2020/05/26 Python
小学竞选班长演讲稿
2014/09/09 职场文书
作风建设剖析材料
2014/10/06 职场文书
平安建设汇报材料
2014/12/29 职场文书
Python学习开发之图形用户界面详解
2021/08/23 Python
MongoDB数据库之添删改查
2022/04/26 MongoDB