python向数据库插入中文乱码问题

这即将是一篇very short very short的博文,之所以发这篇博文主要是为了吐槽,表达我的气愤。

我靠,是个人都知道,编码问题遇上了是有多么恶心,就是很恶心很恶心很恶心就是了,对不对。

在python里,import MySQLdb后,向数据库插中文乱码的问题不是一次遇到。

OK,就当我笨吧,我就是笨。曾几何时,python这边死皮赖脸地报错,曾几何时,sql那边雷打不动地显示乱码。姐能怎样,能怎样,还不是各种百度各种谷歌去撞。撞上了就撞上了,反正由于已经转晕了,也懒得记。

但是,今天,姐真的愤怒了。你妹,你妹,你妹,就是你妹。

居然这样就可以了!?居然这样就可以了!?居然这样就可以了!?

好吧,回归正题。

以上内容纯属吐槽,各位看官其实可以完全不用看。

咳咳...

第一步:数据库那边总得把字段类型设置为utf8之类类的吧。

第二步:在连接数据库的时候,加个参数,说明数据库那边的字段类型一致,charset=‘utf8‘。

大概就是这样:

1 conn =MySQLdb.connect(host="127.0.0.1",user="nimei",passwd="nimei",db="nimei",charset="utf8")   

好了,剩下的,大家去验证吧!

要是不行就不行,继续找度娘去。

时间: 2024-10-15 06:29:17

python向数据库插入中文乱码问题的相关文章

mybatis连接mysql数据库插入中文乱码

对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候,选择UTF-8字符集.我试过修改现有数据库字符集为UFT -8,但是根本不起作用,插入的中文仍然乱码(中文显示成:???).重建库时选择字符集为UTF-8之后,中文正常显示了. 对于第二个问题,是这样 的情况:我建库时设置了数据库默认字符集为UTF-8,通过mysql workbench直接插

python操作数据库产生中文乱码问题【已解决】

记:最近在使用python进行学生成绩管理系统设计时,遇到了一个中文显示的问题,这个问题困扰了一个上午,查阅了有关资料,锁定了原因——编码问题.最终更改编码设置,问题得到了解决. 具体做法: 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)    2 MySQL数据库charset=utf-8     3 Python连接MySQL是加上参数 charset=utf8     4 设置Python的默认编码为 utf-8 (sys.setdefaulte

oracle 数据库插入中文乱码

一. 查询数据库编码 select userenv('language') from dual; 查询服务器编码 select * from v$nls_parameters; 推出sql查询系统编码 [email protected]:/# locale LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX"

客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案

最近在制作一个安装包,需要安装的时候执行mysql脚本儿,做了一个批处理,但是发现总是执行到 插入中文的时候报错,或者插入中文是乱码. 网上查了好多资料,说是把编码改成GBK什么的,终究还是不成功. 最后经过多次测试,现把解决方案分享给大家. 第一步:打开mysql中的配置文件,my.ini,看一看配置文件中 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 看是不是这样配置的.因为utf8 是国际通用的,

MyBatis连接MySQL插入中文乱码

问题:数据库已有中文读取时正常,插入中文却变成乱码 这就是编码设置的问题了,MySQL有两处指定了编码 1.连接MySQL的url设置 db.url=jdbc:mysql://127.0.0.1:3306/user-center?useUnicode=true&characterEncoding=utf8 2.建表时的编码指定 插入中文乱码说明是连接MySQL的url编码设置有问题,修改useUnicode=true&characterEncoding=utf8设置即可

[转]Python的经典问题——中文乱码

关键字:Python UTF-8 GBK 中文 乱码估计入门时都会遇到的.我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是正常的.百思不得其解.首先查看了一下源文件的编码格式,是UTF-8.经过搜索再搜索,调试再调试,也换了几个编译器,发现比IDLE还糟糕(可能需要进行encode设置).问题终于解决了,一共花了俺将近5个小时,写在这里,希望遇到问题的人能搜索到这里,不再重犯.乱码原因:因为你的文件声明为utf-8,并且也

在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码。

            在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码. 这个问题困惑了我很久,也走了很多弯路.经过不断的探究终于找到了问题的解决方案. 第一:查看自己的mysql的编码.cmd->mysql –uroot –p -->输入自己的mysql的密码->输入 SHOWVARIABLES LIKE 'character%';(如果装mysql时默认安装的话,会出现很多latin1,而不是我下面的全部utf-8,这是因为mysql默认的编码是lati

Python 生成的页面中文乱码问题

第一 保证 程序源文件中的中文的编码格式,如我们把 源文件的编码设置成utf8的. reload(sys) sys.setdefaultencoding('utf-8') 第二, 告诉浏览器,我们需要用什么格式来展示字符 . web.header('Content-Type', 'text/html; charset=UTF-8') 主要是加这个 HTML格式的头部中说明. 这样基本可以解决,Python生成的网页中文乱码的问题. 版权声明:本文为博主原创文章,未经博主允许不得转载.

MySQL数据库插入中文时出现Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1

今天在开发时候出现了这个问题 Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1 场景,往MySQL数据库的表中插入中文参数,抛出了这个异常 我用sqlyog执行该段代码时候发现只是出现警告,并没有出现error,但是在代码里面执行抛出了异常,说明管理工具sqlyog对有些约定不是那么严格,而代码中就会报错.提醒自己,以后写sql时候不能忽略管理工具中出现的警告. 解决方案: 在用sql