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 相关文章推荐
对变量赋值的理解--Pyton中让两个值互换的实现方法
Nov 29 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
Django之模型层多表操作的实现
Jan 08 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Python Django简单实现session登录注销过程详解
Aug 06 Python
python 协程 gevent原理与用法分析
Nov 22 Python
python 读取数据库并绘图的实例
Dec 03 Python
python游戏开发的五个案例分享
Mar 09 Python
Python网页解析器使用实例详解
May 30 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
scrapy结合selenium解析动态页面的实现
Sep 28 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中使用Oracle数据库(6)
2006/10/09 PHP
PHP 日期加减的类,很不错
2009/10/10 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
php实现登陆模块功能示例
2016/10/20 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
Python读取实时数据流示例
2019/12/02 Python
零基础学python应该从哪里入手
2020/08/11 Python
活动总结报告格式
2014/05/09 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
国庆节标语大全
2014/10/08 职场文书
接待员岗位职责
2015/02/13 职场文书
幸福终点站观后感
2015/06/04 职场文书
爱国电影观后感
2015/06/19 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
小学班主任心得体会
2016/01/07 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
MySQL索引是啥?不懂就问
2021/07/21 MySQL
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL