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中的yield使用方法
Feb 11 Python
Python检测QQ在线状态的方法
May 09 Python
python实现的简单FTP上传下载文件实例
Jun 30 Python
详解Python编程中time模块的使用
Nov 20 Python
python实现用户登录系统
May 21 Python
Python处理XML格式数据的方法详解
Mar 21 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
使用python模拟命令行终端的示例
Aug 13 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
python实现小程序推送页面收录脚本
Apr 20 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
python设置表格边框的具体方法
Jul 17 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 无法载入mysql扩展
2010/03/12 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
Python中asyncore的用法实例
2014/09/29 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
python求解汉诺塔游戏
2020/07/09 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
纽约手袋品牌:KARA
2018/03/18 全球购物
学术会议邀请函范文
2014/01/22 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
《生命的药方》教学反思
2014/04/08 职场文书
阳光体育活动总结
2014/04/30 职场文书
派出所所长先进事迹
2014/05/19 职场文书
大学生个人求职信例文
2014/07/07 职场文书
土地转让协议书
2014/09/27 职场文书
个人事迹材料范文
2014/12/29 职场文书
罗马假日观后感
2015/06/08 职场文书
淮海战役观后感
2015/06/11 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python