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实现百度关键词排名查询
Mar 30 Python
python实现实时监控文件的方法
Aug 26 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
简单实现python聊天程序
Apr 01 Python
python 编码规范整理
May 05 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 Python
Python如何存储数据到json文件
Mar 09 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
idea2020手动安装python插件的实现方法
Jul 17 Python
Python使用正则表达式实现爬虫数据抽取
Aug 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
Smarty模板快速入门
2007/01/04 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
通过实例了解js函数中参数的传递
2019/06/15 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
Python @property原理解析和用法实例
2020/02/11 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
中学生运动会入场词
2014/02/12 职场文书
政府四风问题整改措施
2014/10/04 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
浅谈Python数学建模之固定费用问题
2021/06/23 Python
为什么RedisCluster设计成16384个槽
2021/09/25 Redis