iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何解决Python调用MySQLdb插入中文乱码的问题
  • 436
分享到

如何解决Python调用MySQLdb插入中文乱码的问题

2023-06-29 16:06:30 436人浏览 安东尼
摘要

这篇文章主要介绍如何解决python调用MySQLdb插入中文乱码的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Mysqldb插入中文乱码#!/usr/bin/Python# -*- cod

这篇文章主要介绍如何解决python调用MySQLdb插入中文乱码的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Mysqldb插入中文乱码

#!/usr/bin/Python# -*- coding: utf-8 -*- import mysqldbdef main():    fullname = "赵钱孙李"     conn = Mysqldb.connect(host='localhost', user='root',passwd='123', db='account', charset='utf8')  # OK    #conn = MySQLdb.connect(host='localhost', user='root',passwd='123', db='account')  # Error!!!    cursor = conn.cursor()    cursor.execute("insert into account (username,passWord) values ('%s','%s')" % (fullname, "111"))    conn.commit()    cursor.close()    conn.close() if __name__ == "__main__":    main()

如果从终端查询到数据库中的中文是乱码,那么在连接时给出charset参数即可(当然数据库和表必须全部都是utf-8的)。

否则默认插入的字符应该是latin-1的(用fullname.decode('utf8')时报该错误)。

然后将从数据库中读取的中文输出到网页,如果没有任何内容显示,加入以下代码可解决:

import sysreload(sys)sys.setdefaultencoding('utf-8')

Python内部处理编码默认是ascii的:

print sys.getdefaultencoding()

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

这几天忙着帮人做一个从网页抓取股票信息并把相应信息存入MySQL中的程序。

使用环境

  • Python 2.5 for windows

  • MySQLdb 1.2.2 for Python 2.5

  • MySQL 4.1.22

在写程序中遇到了些怪的故障。

第一个问题:插入中文失败

这个是由于字符编码问题引起的。MySQL安装时我已经设置为utf8编码,表也是使用utf8编码建立。程序中只要在开头写好#-*- coding: utf-8 -*-,并在设定连接字符串时候写清使用utf8就可以了conn=MySQLdb.connect(host="127.0.0.1",user="WEBdb",passwd="web123",db="web",charset="utf8")。

设置之后从MySQL中取出的以utf8编码保存的中文也不会发生乱码。 

对中文字符串,如:a = "浦发银行",在进行插入操作前做一下编码转换a = a.decode("gbk").encode("utf-8")。然后进行插入操作就没有任何问题了。

第二个问题:能插入之后无法在MySQL中保存刚才插入的数据

经过检查数据可以被正确的插入,但是连接断开之后不保存在表中。经过检查发现原来是漏了conn.commit()。需要在语句执行之后提交操作。

源代码如下:

 # -*- coding: utf-8 -*- import  sys,MySQLdbconn = MySQLdb.connect(host = " 127.0.0.1 " ,user = " webdb " ,passwd = " web123 " ,db = " web " ,charset = " utf8 " )     # 需要设定一下charset为utf-8 cursor = conn.cursor()     # 生成连接的指针对象 # 进行字符串编码转换并进行插入 a  =   " 浦发银行 "a  =  a.decode( " gbk " ).encode( " utf-8 " )     # 编码转换为utf-8 sql = " insert into stocklist (stockno,stockname) values (%s,%s) "      # 生成sql语句 param = ( ' 600000 ' ,a)     # 生成sql语句的参数 n  =  cursor.execute(sql,param)     # 执行sql语句# 以上操作等价于n = cursor.execute("insert into stocklist (stockno,stockname) values ('430004','"+ "浦发银行".decode("gbk").encode("utf-8") + "')") print  nconn.commit()  # 提交操作结果 # 进行查询操作检查刚刚执行的插入操作结果 n  =  cursor.execute( " select * from stocklist " ) for  row  in  cursor.fetchall():     print  row[0]  +  row[ 1 ]cursor.close()     # 关闭指针 conn.close()     # 关闭连接

以上是“如何解决Python调用MySQLdb插入中文乱码的问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 如何解决Python调用MySQLdb插入中文乱码的问题

本文链接: https://www.lsjlt.com/news/325656.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决Python调用MySQLdb插入中文乱码的问题
    这篇文章主要介绍如何解决Python调用MySQLdb插入中文乱码的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQLdb插入中文乱码#!/usr/bin/python# -*- cod...
    99+
    2023-06-29
  • Python调用MySQLdb插入中文乱码的解决
    目录MySQLdb插入中文乱码MySQLdb使用utf-8 编码插入中文数据使用环境第一个问题:插入中文失败第二个问题:能插入之后无法在MySQL中保存刚才插入的数据MySQLdb插...
    99+
    2022-11-13
  • python如何解决中文编码乱码问题
    小编给大家分享一下python如何解决中文编码乱码问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、什么是字符编码。要彻底解决字符编码的问题就不能不去了解到底...
    99+
    2023-06-25
  • python中文编码乱码问题的解决
    目录前言:一、什么是字符编码。1.ASCII2.GB23123.Unicode4.UTF-8二、Python2中的字符编码三、decode()与encode()方法四、一个字符编码的...
    99+
    2022-11-12
  • mysql中插入表数据中文乱码问题的解决方法
    一、问题 开发中遇到将其它数据库数据插入到mysql数据库表中一直会报类似如下错误: Incorrect string value: '\xE6\x88\x91' for column 'name' at...
    99+
    2022-10-18
  • 如何解决mysql导入文件中文乱码的问题
    小编给大家分享一下如何解决mysql导入文件中文乱码的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql导入文件中文乱...
    99+
    2022-10-18
  • 解决Linux下Tomcat向MySQL插入数据中文乱码问题
    一、问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二、解决办法 1、尝试一 直接在linux上面使用in...
    99+
    2022-10-18
  • php.ini如何解决中文乱码问题
    本篇内容主要讲解“php.ini如何解决中文乱码问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php.ini如何解决中文乱码问题”吧!php.ini解决中文乱码的方法:首先打开php.ini...
    99+
    2023-06-20
  • 如何解决AJAX中文乱码问题
    本篇内容介绍了“如何解决AJAX中文乱码问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • 如何解决ubuntu16.04中文乱码问题
    解决ubuntu16.04中文乱码的方法:1、在ubuntu终端命令行中使用“apt-get install language-pack-zh-hans”命令安装好中文语言包;2、在bash.bashrc配置文件中写入“export LC_...
    99+
    2022-10-19
  • php如何解决中文乱码问题
    小编给大家分享一下php如何解决中文乱码问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php解决中文乱码的方法:1、在head标签里面加入UTF8编码;2、在...
    99+
    2023-06-07
  • mysql5.5中文乱码问题如何解决
    本篇内容介绍了“mysql5.5中文乱码问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!查看MySQL的字符集show ...
    99+
    2023-06-30
  • MYSQL中文乱码问题如何解决
    这篇文章主要介绍了MYSQL中文乱码问题如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MYSQL中文乱码问题如何解决文章都会有所收获,下面我们一起来看看吧。一、乱码的原因: client客户端的编码不是...
    99+
    2023-07-02
  • 【Python】中文乱码问题与解决方案 深入分析
    一直以来,python中的中文编码就是一个极为头大的问题,经常抛出编码转换的异常,python中的str和unicode到底是一个什么东西呢? 在本文中,以'哈'来解释作示例解释所有的问题,“哈”的各种编码如下: 1. UNICODE (...
    99+
    2023-09-03
    python 开发语言 编辑器
  • mysql数据库导入中文乱码的问题如何解决
    这篇文章给大家分享的是有关mysql数据库导入中文乱码的问题如何解决的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 mysql数据库汉字乱码怎么办?如何解决mysql数...
    99+
    2022-10-18
  • 如何解决MySQL使用中文乱码问题
    这篇文章给大家分享的是有关如何解决MySQL使用中文乱码问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、中文乱码1.1、中文乱码 create table user(name&...
    99+
    2023-06-28
  • 如何解决php写入数据库中文乱码问题
    本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑如何解决php写入数据库中文乱码问题PHP写入数据库中文乱码问题PHP页面转UTF-8编码问题 在代码开始出加入一行: header("Content-Type...
    99+
    2015-07-18
    php 乱码
  • 如何解决git status中文乱码的问题
    Git是目前最流行的版本控制工具之一,而在使用Git时,一些中文项目路径或文件名可能会出现乱码,特别是在使用git status命令时,可能会看到类似于“\344\270\215\345\231\250\346\265\213”,这种乱码对...
    99+
    2023-10-22
  • 如何解决php ci 中文乱码的问题
    本篇内容介绍了“如何解决php ci 中文乱码的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php ci中文乱码的解决办法:1、通过p...
    99+
    2023-06-20
  • 如何解决php的exit中文乱码问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php的exit中文乱码问题?PHP exit函数输出中文是乱码在namespace 的后面加上下面这句代码就可以了header('Content-Typ...
    99+
    2015-12-30
    php exit
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作