Ubuntu 16.04 Python读取MySQL数据库中文乱码的问题
2017-10-22 20:24
423 查看
Contented with little, yet wishing for more.
为收获一点点感到满足,但是希望可以获得更过。
尝试了各种方法,将最简单的解决方案写了下来:
中文乱码的主要原因是数据库编码的问题,因此只需改变数据库的编码。
编辑MySQL配置文件:
添加如下代码:
网上一堆配置发现有用的只是这两句。。。。。。
改变配置后重启MySQL服务。(简单粗暴的可以直接重启电脑)
查看修改后的数据库编码命令:
修改后的MySQL数据库编码如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/02/40b7f2e09e77347c8805cd976e8c4dda)
修改好数据库编码之后,以前的数据库要重新建,发现事情还没有解决。。。。。难受
首先使用以下代码连接数据库,一点毛病没有,字符编码也设置好了。
数据库中的内容是:
然而读出来的结果是:
内心很崩溃。。。。。。。。。。还是要坚持解决问题。网上搜了一堆可能的原因如下:
mysql数据库各项没有设置编码,默认为’latin’
使用MySQL.connect的时候没有设置默认编码
没有设置python的编码,python2.7默认为’ascii’
没有解码decode(’uft-8’)
varchar和nvarchar的区别
…….
一个一个试发现都不能解决问题,算了还是喝口水冷静一下,伤不起。。。
最后,摸索一番问题解决了。。。。。。我都不敢相信。。。
输出数据是一个tuple时,中文的那部分显示的Ascll码,但是当我取出元组中的每一个属性时,发现可以正常输出中文。。。。。。我想我该问问佛祖是为什么了。。。,,,
希望我的解决方案可以帮我和我遇到一样问题的同学!!!
为收获一点点感到满足,但是希望可以获得更过。
Ubuntu 16.04 Python读取MySQL数据库中文乱码的问题
MySQL数据库安装好之后,发现不能向数据库中插入中文,作为一个伟大的天朝人简直不能忍啊。后来网上百度看到修改配置的解决方案,发现乱七八糟一大堆,很多不能解决问题。尝试了各种方法,将最简单的解决方案写了下来:
中文乱码的主要原因是数据库编码的问题,因此只需改变数据库的编码。
编辑MySQL配置文件:
$sudo vim /etc/mysql/conf.d/mysql.cnf
添加如下代码:
[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8
网上一堆配置发现有用的只是这两句。。。。。。
改变配置后重启MySQL服务。(简单粗暴的可以直接重启电脑)
停止mysql: 方式一:sudo /etc/init.d/mysql stop 方式二:sudo stop mysql 方式三:sudo service mysql stop (亲测可行) 重启mysql: 方式一:sudo/etc/init.d/mysql restart 方式二:sudo restart mysql 方式三:sudo service mysql restart
查看修改后的数据库编码命令:
show variables like 'char%'
修改后的MySQL数据库编码如下:
修改好数据库编码之后,以前的数据库要重新建,发现事情还没有解决。。。。。难受
从数据库中读取中文数据乱码
本人开发环境: Ubuntu16.04+eclipse + Python+MySQL首先使用以下代码连接数据库,一点毛病没有,字符编码也设置好了。
conn=MySQLdb.connect(host='localhost',user='root',passwd='home',db='Student',port=3306,charset='utf8')
数据库中的内容是:
(17,'沈梦家',‘男’)
然而读出来的结果是:
((17L, u'\u6c88\u68a6\u5bb6', u'\u7537'),)
内心很崩溃。。。。。。。。。。还是要坚持解决问题。网上搜了一堆可能的原因如下:
mysql数据库各项没有设置编码,默认为’latin’
使用MySQL.connect的时候没有设置默认编码
没有设置python的编码,python2.7默认为’ascii’
没有解码decode(’uft-8’)
varchar和nvarchar的区别
…….
一个一个试发现都不能解决问题,算了还是喝口水冷静一下,伤不起。。。
最后,摸索一番问题解决了。。。。。。我都不敢相信。。。
输出数据是一个tuple时,中文的那部分显示的Ascll码,但是当我取出元组中的每一个属性时,发现可以正常输出中文。。。。。。我想我该问问佛祖是为什么了。。。,,,
希望我的解决方案可以帮我和我遇到一样问题的同学!!!
相关文章推荐
- Python读取中文txt乱码问题
- Ubuntu16.04中文字符乱码问题的解决方法
- ubuntu下MySQL数据库中文乱码问题解决
- Python读取mysql数据库数据出现中文乱码
- Ubuntu Server 16.04中文方块菱形乱码问题解决
- ubuntu下python处理mysql中文乱码问题
- Python实现的json文件读取及中文乱码显示问题解决方法
- Python json文件读取及显示中文乱码的问题
- Ubuntu 16.04 下 Matlab 2013a 中文乱码问题解决
- ubuntu16.04安装matplotlibm导致中文乱码的问题解决
- python读取\t\n的文件转换成html表格发送邮件(解决中文乱码问题)
- Python读取.xml文件(<?xml version="1.0" encoding="UTF-16"?>)中文乱码问题解决
- 解决ubuntu中mysql数据库表名不能为中文,以及插入中文乱码问题
- python操作mysql数据库如何解决中文乱码的问题
- 解决PHP写入、读取MYSQL数据库数据中文乱码问题
- 解决ubuntu中mysql数据库表名不能为中文,以及插入中文乱码问题
- Python读取SQL Server 2008中文乱码问题
- 解决matplotlib中文乱码问题(Ubuntu16.04)
- Ubuntu16.04中文字符乱码问题
- Ubuntu 16.04下安装Android studio 中文乱码问题