300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python连接mssql数据库编码问题解决方法

Python连接mssql数据库编码问题解决方法

时间:2023-11-09 17:13:43

相关推荐

Python连接mssql数据库编码问题解决方法

后端开发|Python教程

Python,连接mssql数据库编码问题

后端开发-Python教程

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

微信公众号导航 网站源码下载,vscode标准库路径,ubuntu 安装 慢,li启动tomcat命令,英语爬虫,php bc库,浙江霸屏seo外包,二代旅游网站CMS,自适应平台网站模板lzw

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

php网站开发实例教程源码,ubuntu nfs4,tomcat9打开乱码,清远爬虫ip厂,php 微信公众号模板消息格式,vue php seolzw

复制代码 代码如下:

c map 源码,vscode运行h5无反应,ubuntu gdal,tomcat加载war包重启,qt sqlite 路径,网页设计中的交互设计,远程桌面连接云服务器,针对微信源码的插件,学习前端框架技术,爬虫盒马数据,php备注,搜狗seo快速排名公司,化妆品公司网站源码,wp网页模板,wordpress模板设置,仿支付宝全部页面,学生综合管理系统下载,asp程序整合ucenterlzw

#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

运行结果如下:

复制代码 代码如下:

[(u3501, u\xb9\xf9\xbe\xb8, u\u7537 , 35, u\xb4\xf3\xcf\xc0),

(u3502, u\xbb\xc6\xc8\xd8, u\u5973 , 34, u\xc3\xc0\xc5\xae),

(u3503, u\xc1\xee\xba\xfc\xb3\xe5, u\u7537 , 25, u2B\xc7\xe0\xc4\xea),

(u3504, u\xc8\xce\xd3\xaf\xd3\xaf, u\u5973 , 24, u\xc6\xaf\xc1\xc1)]

[Finished in 0.2s]

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。