问题描述
我平时工作中,常会用Python做些小程序查询数据库,结果发现不同的表里面的中文不知道什么原因有些能显示出来,有些显示出来的是乱码。
将代码改成如下:
复制代码
1
2
3
4
5
6
7def GetConnect(self): #print(self.db) if not self.db: raise(NameError,'没有目标数据库') self.connect=pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset='utf8')
原因分析:
查了相关资料MSSQL表里面中文一般采用GBK编码。但有些时候使用GBK编码也不起作用
解决方法:
提示:我们可以采用2种方案解决:在第一种方法不能解决的情况下,使用第二种解决方法。
第一种方法:一般来讲,将编码方式改成GBK编码的方式就能解决显示中文是出现乱码的现象。
复制代码
1
2
3
4
5
6def GetConnect(self): if not self.db: raise(NameError,'没有目标数据库') self.connect=pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset='GBK') cur=self.connect.cursor()
但是如果使用第一种解决方案中文出现乱码,则使用第二种终极解决方法。
第二种方法:将需要显示的中文字段加上convert(nvarchar(20),name),其中name是字段名称
复制代码
1
2resList0 = "select top 1 convert(nvarchar(20),name) from mz_jl where rq>='"+ti1+"'and rq<='"+ti2+"' and bh="+str
运行结果如下,问题解决!
最后
以上就是醉熏凉面最近收集整理的关于Python笔记005:MSSQL查询中文出现乱码解决办法,特别是第二种方法超有用问题描述原因分析:解决方法:的全部内容,更多相关Python笔记005:MSSQL查询中文出现乱码解决办法内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复