python MySQLdb中文乱码

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 MySQLdb中文乱码

时间: 2024-11-08 12:10:13

python MySQLdb中文乱码的相关文章

{转}Python IDLE中文乱码

http://hi.baidu.com/yobin/item/166e3a46537781d3c1a59257 乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. 解决方法:在控制台打印的地方用一个转码就ok了,打印的时候这么写:print myname.decode('UTF-8').encode('GBK') 比较通用的方法应该是:import

Python解决中文乱码问题

在Python中内部所有编码都是Unicode,Unicode属于中转码,一般来说,是先把乱码转化为中转码,再转化为我 们需要的编码,转换过程为decode -> unicode -> encode. #coding:utf-8 #-*- coding:utf-8 -*- import sys print sys.getdefaultencoding() print '中国' f = open('Hello.txt') data = f.read() f.close() print data.

win10下使用vscode调试python输出中文乱码的解决办法

今天在vscode中调试一个python脚本时发现中文乱码了,折腾了好一会儿才找到原因,记录一下. 很简单的一句代码测试一下: # -*- coding: utf-8 -*- print('乱码不?') 文件编码设置的也是utf-8,但是调试就是乱码,网上看大都是说设置PYTHONIOENCODING=UTF8的环境变量,尝试过发现还是不行. 其实问题在于windows下的cmd或者PS终端都是默认GBK编码,VSCODE调试时是调用的cmd的,如果把文件头和编码都改成GBK就不会乱码了,但是考

python爬虫中文乱码问题(request方式爬取)

https://blog.csdn.net/guoxinian/article/details/83047746 req = requests.get(url)返回的是类对象 其包括的属性有: req.encoding:返回编码方式 req.text:text返回的是处理过的Unicode型的数据 req.content:content返回的是bytes型的原始数据 content是把内容bytes返回. 而text是decode成Unicode. 如果headers没有charset字符集的化

Python beautifulsoup 中文乱码

在爬百度"今日热点事件排行榜"的时候发现打印在控制台的中文全部显示乱码,开始怀疑控制台的原因导致了乱码,后来输出一个中文,发现显示正常. #-*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup res = requests.get("http://top.baidu.com/buzz?b=341&fr=topbuzz_b1&qq-pf-to=pcqq.discussion"

Python IDLE 中文乱码问题

最近忙完了一个比较大的 GIS 软件系统,于是闲暇之余想研究一下开源的技术,纵观当前开源桌面 GIS 软件领域,最牛叉的莫过于大名鼎鼎的 Quantum GIS,简称 QGIS.做过 GIS 的人都知道,ESRI ArcGIS 是 GIS 软件领域迄今为止世界上最牛叉的一个,但由于是商业软件,故而其价格普通大众望而却步.于是,寻找一款开源免费的且功能又能与之睥睨的GIS软件就在所难免了.本人经过大量比较得出,QGIS 当之无愧! 可是对于我来说,由于我是搞 GIS 软件应用开发的,而且只精通 J

Python输出中文乱码问题

//建立一个文件test.txt,文件格式用ANSI,内容为: //abc中文 //用python来读取 # coding=gbk print open("Test.txt").read() //结果:abc中文 //把文件格式改成UTF-8: //结果:abc涓枃 //显然,这里需要解码: # coding=gbk import codecs print open("Test.txt").read().decode("utf-8") //结果

python matplotlib中文乱码

1. 找到matplotlib配置文件matplotlibrc,在python安装目录下 我的是C:\Python27\Lib\site-packages\matplotlib\mpl-data 2. #font.family, 将其注释去掉,冒号后面的值改为Microsoft YaHei 3. #font.sans-serif, 将其注释去掉,并将Microsoft YaHei添加到冒号后面的最前面 4. 拷贝文件.C:\Windows\Fonts\中找到 微软雅黑对应的字体文件msyh.tt

python爬虫中文乱码问题

用urllib做一个简单的功能,抓取网页,然后打印,发现中文部分输出异常,全是16进制,如图 后面百度了一下,看了几张帖子,终于找到了解决方法,只需要将结果decode一下就ok,decode的编码根据不同的网站都不一样,一般为utf-8 之后输出结果正常