`
daniel_tu
  • 浏览: 178735 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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
       
返回结果:
-4 TEXT
-3 DATE
-2 INT
-1 STRING
1 TOP
2 教育
3 机构
4 人
5 地区
6 单位
7 科学研究
8 实验室
9 类型
10 学科
11 新闻
12 学科
13 新闻
14 简介
15 通知
16 通知
17 地区
18 省部级实验室
19 国家实验室

如果编码是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查询mysql中文乱码问题

    本文主要是解决python2.7在查询mysql时产生中文乱码的处理方法,非常的有用,亲测可行,推荐给大家

    Ubuntu的MySQL中文乱码问题

     /usr/local/lib/python2.7/dist-packages/Django-1.11.dev20170117002028-py2.7.egg/django/db/backends/mysql/base.py:109: Warning: Incorrect string value: 'xE6x88x90xE5x8Ax9F…' for column 'json' at row...

    python操作mysql中文显示乱码的解决方法

    主要介绍了python操作mysql中文显示乱码的解决方法,是Python数据库程序设计中经常会遇到的问题,非常具有实用价值,需要的朋友可以参考下

    python sqlobject(mysql)中文乱码解决方法

    UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in ...Python mysql 中文乱码 的解决方法,有需要的朋友不妨看看。 先来看一段代码:复制代码 代码如下:import MySQLdb db_user = “tiger”

    解决python2.7 查询mysql时出现中文乱码

    主要介绍了python操作mysql中文显示乱码的解决方法,是Python数据库程序设计中经常会遇到的问题,非常具有实用价值,需要的朋友可以参考下

    Python程序中使用SQLAlchemy时出现乱码的解决方案

    今天对clubot进行了升级, 但是导入数据后中文乱码, 一开是找资料说是在创建引擎的时候添加编码信息: engine = create_engine(mysql://root:@localhost:3306/clubot?charset=utf8) 但是这并不行, 然后查看表信息: ...

    Python如何读取MySQL数据库表数据

    本文实例为大家分享了Python读取MySQL数据库表数据的具体...## 加上字符集参数,防止中文乱码 dbconn=pymysql.connect( host="**********", database="kimbo", user="kimbo_test", password="******", port=330

    浅谈mysql的中文乱码问题

    首先,我用的mysql版本号是5.5.17的,最近遇到的问题是在eclipse中通过jdbc往数据库写中文数据的时候,在数据库中显示的是??即乱码,为解决这个问题,搞了一个晚上(当然熄灯后就就寝了(__) )外加早上这会儿,搞...

    Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    几天基于Heritrix写了一个爬虫,用到mysql,在导入导出数据时,遇到一些乱码问题,好不容易解决了,记录一下,以备查看

    mysql数据库乱码之保存越南文乱码解决方法

    我自己测试一下,很多字符变成了 ‘?...我看一下数据库字符集,默认都是 gbk,这个对中文是没有问题的,一碰到越南文,就乱码了。 于是,我将可能用到越南文的字段的字符集修改为 utf8,校对修改为:utf8_unicod

    Ubuntu下MySQL中文乱码的问题解决

    /usr/local/lib/python2.7/dist-packages/Django-1.11.dev20170117002028-py2.7.egg/django/db/backends/mysql/base.py:109: Warning: Incorrect string value: '\xE6\x88\x90\xE5\x8A\x9F...' for column 'json' at...

    Python中MYSQLdb出现乱码的解决方法

    本文实例讲述了Python中MYSQLdb出现乱码的解决方法,分享给大家供大家参考。具体方法如下: 一般来说,在使用mysql最麻烦的问题在于乱码。 查看mysql的编码: 命令: 复制代码 代码如下:show variables like ...

    mysql中插入表数据中文乱码问题的解决方法

    一、问题 开发中遇到将其它数据库数据插入到mysql数据库表中一直会报类似如下错误: ...然后网上百度发现是mysql默认的编码问题导致的中文乱码。 三、解决方案 1. 检查本地mysql安装文件目录下的my.ini配置文件,服务

    Python 2.7及对应的mysqldb win32 py2.7打包下载

    内包含以下内容: 1、python-2.7.msi 2、MySQL-python-1.2.3.win32-py2.7.exe Python2.7操作Mysql数据库及乱码解决方案 http://blog.csdn.net/zm2714/article/details/7974890

    Python信息抽取之乱码解决办法

    Python信息抽取之乱码解决办法 就事论事,直说自己遇到的情况,和我不一样的路过吧,一样的就看看吧  信息抓取,用python,beautifulSoup,lxml,re,urllib2,urllib2去获取想要抽取的页面内容,然后使用lxml或者...

    MYSQL数据库使用UTF-8中文编码乱码的解决办法

    创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”, 如果该字段是存放英文或数字的话,默认就可以了。 相应的SQL语句,例如: CREATE TABLE `test` ( `id` INT NOT ...

Global site tag (gtag.js) - Google Analytics