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内置函数OCT详解
Nov 09 Python
python数据类型_字符串常用操作(详解)
May 30 Python
Python常见异常分类与处理方法
Jun 04 Python
Python IDLE清空窗口的实例
Jun 25 Python
python3解析库pyquery的深入讲解
Jun 26 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
python批量图片处理简单示例
Aug 06 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
将python字符串转化成长表达式的函数eval实例
May 11 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 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目录遍历函数opendir用法实例
2014/11/20 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
JS定时器实例
2013/04/17 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python类中self参数用法详解
2020/02/13 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
Python作用域与名字空间原理详解
2020/03/21 Python
python编写实现抽奖器
2020/09/10 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
技术负责人任命书
2014/06/05 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
开服装店计划书
2014/08/15 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL
正则表达式拆分url实例代码
2022/02/24 Java/Android