前几天使用pyhton3.6连接mysql数据库,查询出来的中文显示乱码(准确说是问号??),网络搜索答案,大概的解决步骤是这样的(以下引用网络搜索答案):
下面几个措施,保证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)
然而,这几个步骤都试了,查询出来的中文仍是乱码。我的内心几乎是崩溃的。。。
最后在一个设置中给了我灵感。
cur=conn.cursor()#获取一个游标
cur.execute('SET NAMES utf-8')
这里让我查询数据不显示乱码的设置是:
cur.execute('SET NAMES gbk') # 在此之前我使用R语言连接过mysql,也是需要进行此设置。
不知道其他人是否遇到过同样的问题?
电脑背景:
windows 7
python3.6
python及数据库的编码都是utf8。