关闭

解决python连接mysql,UTF-8乱码问题

标签: python编码乱码utf-8mysql
7938人阅读 评论(5) 收藏 举报
分类:

在测试“Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序”的程序时,从MySQL中读取的中文输出到网页显示都是问号,如下图:


解决方法:

产生乱码问题,通常都是由于几方面的编码不统一导致的,请检查以下编码是否一致:

1、最好统一使用 utf-8 编码,对各种字符集支持的都很好!

2、网页的编码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bluemix云端数据库服务ClearDB MySQL使用示例———Python投票程序 - 无知人生,记录点滴</title>

3、MySQL 数据库使用的编码


排序规则保持默认值即可。

这是用的什么数据库管理工具?

MySQL 图形界面管理工具Navicat for MySQL

如果是现有的数据库,我们可以通过以下查询语句查看一下:

SHOW VARIABLES LIKE '%char%';

输出如下图:


最关键的是要看“character_set_server”是否为 utf-8 编码,通常是因为 character_set_server 的编码为 latin1 而产生乱码的原因。

解决方法,执行语句修改:

set character_set_server='utf8';
注意:这里是“utf8”,而不是“utf-8”,中间不需要有减号。


4、Python连接数据库使用的编码

conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='test',port=3306)
cur=conn.cursor()
cur.execute('SET NAMES UTF8')

5、Python的默认编码

import sys		#提供了许多函数和变量来处理 Python 运行时环境的不同部分.

reload(sys)  
sys.setdefaultencoding('utf8')

结束语

将编码都统一之后,乱码的问题应该就解决了,现在很多语言默认编码都是 utf-8 了,

我遇到最多的就是数据库 character_set_server 的编码和连接数据库时使用的编码不一致导致的问题。

如果你还没有解决,请把你遇到的情况告诉我。

5
0
查看评论

Python 写入 Mysql 乱码问题

确保以下几点,就不会有乱码问题,字符集统一采用UTF-8: 1 . 表的默认字符集是否为UTF-8,使用类似如下的SQL语句:CREATE TABLE IF NOT EXISTS name( id INTEGER PRIMARY KEY AUTO_INCREMENT, prop...
  • questionfish
  • questionfish
  • 2016-05-20 16:55
  • 1838

Python操作MySQL以及中文乱码的问题

Python操作MySQL需要安装Python-MySQL可以从网上搜索一下,和一般的Python包一样安装安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用,试验了一下挺好用,不过又发现了烦人的乱麻问题,最后用了几个办法,解决了!我用了下面几个措施,保证MySQL...
  • foyuan
  • foyuan
  • 2007-07-27 10:47
  • 27020

解决python连接mysql,UTF-8乱码问题

1。 Python文件设置编码 utf-8 (文件前面加上 #encoding=UTF-8)     2。 MySQL数据库charset=utf8      3。 Python连接MySQL时加上参数 charset=&qu...
  • Yelbosh
  • Yelbosh
  • 2014-03-29 22:17
  • 6569

Python2.7操作Mysql数据库及乱码解决方案(附mysqldb win32 py2.7下载)

mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法。python操作MySQL数据库需要安装一个第三方的模块,在http://mysql-python.sourceforge.net/有下载和文档。或者在本站下载:Python...
  • zm2714
  • zm2714
  • 2012-09-13 14:47
  • 3551

python读MySQL数据库出现中文乱码问题

今天Python连接数据库时,读取数据库中的中文出现乱码,会出现一连串的问号,肯定是编码问题导致的,具体解决办法: set character_set_database =utf8; set character_set_results =utf8; set character_set_server ...
  • captain618
  • captain618
  • 2016-09-09 16:23
  • 1674

关于python中pymysql数据编码问题

最近从网上找了开源的在线客服系统——ppmessage,分别按照步骤在windows和ubuntu下进行了部署。测试了下,还不错。 但是用着,突然发现,中文不支持。于是,百度各种查、各种找资料,结果都没有解决。 总结原因如下: 1.数据库编码设置utf8 a. mysql -u root -p(进入...
  • csdnwws
  • csdnwws
  • 2016-07-19 12:48
  • 6451

python,mysql,MySQLDb支持中文(utf-8编码)

只要使用utf-8编码,就可以支持中文。我们的软件都是跑在linux上面的,都是utf-8,所以支持中文就是如何支持utf-8的。 python默认编码:是系统编码,所有有些机器不是utf-8的(可能没有中文原因,是ASCII编码)。 Mysql默认是latin1编码,很简单,开发商是瑞典公司。 ...
  • winlinvip
  • winlinvip
  • 2011-08-14 17:57
  • 15313

Python MySQLdb 使用utf-8 编码插入中文数据

这几天忙着帮人做一个从网页抓取股票信息并把相应信息存入MySQL中的程序。使用环境:Python 2.5 for WindowsMySQLdb 1.2.2 for Python 2.5MySQL 4.1.22在写程序中遇到了些怪的故障。第一个问题:插入中文失败 这个是由于字符编码问题引起的...
  • DKman803
  • DKman803
  • 2007-12-09 01:08
  • 20040

mysql定义字符为utf-8格式

查看数据库字符集 进入MySQL之后,运行语句: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 mysql> show variables like 'char%'; +------------------------...
  • hotpotbo
  • hotpotbo
  • 2016-09-05 19:58
  • 316

Python MySQLdb 使用utf-8 编码插入中文数据

http://blog.csdn.net/dkman803/article/details/1925326/ 这几天忙着帮人做一个从网页抓取股票信息并把相应信息存入MySQL中的程序。 使用环境: Python 2.5 for Windows MySQLdb 1.2.2 for ...
  • dszgf5717
  • dszgf5717
  • 2016-03-26 10:59
  • 3220
    QQ群聊

    IT十年-0群:(170273637)付费

    IT十年-1群:(170272290)

    IT十年-2群:(165600467)

    加群暗号:微wx笑

     

    我的个人网站

    个人资料
    • 访问:10076372次
    • 积分:70030
    • 等级:
    • 排名:第32名
    • 原创:878篇
    • 转载:246篇
    • 译文:53篇
    • 评论:2002条
    博客专栏
    文章分类
    最新评论
    友情链接