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之??碌某?? target=
Sep 12 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
python numpy数组中的复制知识解析
Feb 03 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
python实现的人脸识别打卡系统
May 08 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
python yield关键词案例测试
2019/10/15 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
浅谈Python中的模块
2020/06/10 Python
python PIL模块的基本使用
2020/09/29 Python
python中yield的用法详解
2021/01/13 Python
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
html5绘制时钟动画
2014/12/15 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
客户接待方案
2014/02/26 职场文书
2015年网管个人工作总结
2015/05/22 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
高中美术教学反思
2016/02/17 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python