问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

python3连接MSSQL数据库 中文乱码怎么解决

发布网友 发布时间:2022-04-22 03:22

我来回答

2个回答

热心网友 时间:2022-04-06 07:50

以前用php连mssqy时也经常出现中文乱码(中文变问号)的问题,那时就明白是编码没设置好导航,现在的Python连mssql数据库也同样出现这问题,问题一样,解决的办法当然也会相似,现在我们来看看解决方法。

python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合)。

(1)、首先,要保证文件的开头要加上编码设置来说明文件的编码

代码如下
复制代码

#encoding=utf-8

(2)、然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号

代码如下
复制代码

conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')

(3)、设置python系统的默认编码(对于文件来说,这招几乎屡试不爽,呵呵~~)

代码如下
复制代码

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

注意:上述编码是“utf8”,而不是“utf-8”,我也没弄明白,大部分情况下,这个无所谓的,但是这里我试了必须要是“utf8”

一个简单的完整的python连接mssqlserver的例子如下(得安装pymssql包):

代码如下
复制代码

#encoding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import pymssql
try:
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
sql="select * from UserInfo"

cur=conn.cursor()
cur.execute(sql)
data=cur.fetchall()
conn.close()
print data
except Exception,e:
print e

运行结果如下:

代码如下
复制代码

[(u'20093501', u'xb9xf9xbexb8', u'u7537 ', 35, u'xb4xf3xcfxc0'),
(u'20093502', u'xbbxc6xc8xd8', u'u5973 ', 34, u'xc3xc0xc5xae'),
(u'20093503', u'xc1xeexbaxfcxb3xe5', u'u7537 ', 25, u'2Bxc7xe0xc4xea'),
(u'20093504', u'xc8xcexd3xafxd3xaf', u'u5973 ', 24, u'xc6xafxc1xc1')]
[Finished in 0.2s]

虽然摆脱了问号和乱码的困扰,但这仍不是我们想要的结果,但这个确实是正确的,因为结果是utf8编码。这个现象确实诡异,请教了许多高手,得知,最好的结果就是逐个字段查询,才能显示中文,整个查询的话,会以utf8的格式显示出来。

上述代码中第14行data是整个查询的结果,如果指定某个具体的字段,如print data[0][2](表示取查询结果的第一行第三列的字段的值),则会输出中文。

其实不仅仅是mssqlserver数据库,mysql(需下载MySQLdb包)、sqllite(python自带的文件数据库)、mongodb(需下载PyMongo包)等或者是普通文本文件也是类似的解决方案。

热心网友 时间:2022-04-06 09:08

改一下编码
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
2款摄像头录像软件,满足你的多种要求! 请问你用的摄像头录像是什么软件,能给我一份么? 哪些科学小实验能激发孩子的好奇心? 电费预存金额什么意思 预存电费和银行代扣 怎么样在淘宝网网上买彩票 现在淘宝上还能买彩票吗? 仙剑奇侠传5前传的爱情关系是这样的啊 仙剑5前传人物结局玩家评价介绍_仙剑5前传人物结局玩家评价是什么_百 ... 《念奴娇,赤壁怀古》中赤壁之战的英雄很多,作者为什么... python3 怎么连接数据库 如何用python3连接mysql数据库 小米盒子破解版我选择了第一个程序始终 怎么才能恢... 求指点,python 3.0以上编数据库用什么模块好? 小米盒子 怎么破移动终端访问被拒绝 求小米盒子越狱教程破解方法 小米盒子4如何越狱 小米盒子为什么要破解 为什么柚子都有特别的塑料膜包装? 小米手机如何破解格雷盒子 小米盒子怎么越狱破解的 小米盒子4 root教程 怎么破解小米盒子安装第三方软件 小米盒子4如何破解 小米盒子4怎么破解 依波路手表专卖店 植树节的有关资料 关于植树节的名言,快,快!!!!!!!! 瑞士手表排名大全 瑞士依波路手表怎么样 如何使用python对数据库进行操作 python3如何根据csv文件的列的内容,自动建数据库表 为什么python3编了一个文件比对程序运行结果出来以... python3往Mysql数据库插入数据 怎么治理小飞蛾 陈都灵是怎样出名的? 花盆里长了带翅膀会飞的小虫子怎么办? 在python3下怎样用flask-sqlalchemy对mysql数据库操作 女朋友是校花是种什么体验? 君之兰的花土起小飞虫子 怎么办 python3中,如何把字典中的key和value循环存入MySq... 鸭掌木上的小飞虫子怎样治疗 求一些校园搞笑换身小说 “蓟马”这种小飞虫喜欢爬在哪种颜色的衣服上?我们... 和校花谈恋爱是什么体验? 如何用python3将元组插入MySQL 求一篇校园言情小说 西红柿有小飞娥怎么办? 如何用python写sql 超超超超超超超超超超超超好看校园言情小说
  • 焦点

最新推荐

猜你喜欢

热门推荐