最近在给单位做数据库查询小工具,发现查询MSSQL数据库表时候,又出现了新的状况,同一张表里面,不同字段的中文,有些能显示乱码,有些还不能显示,如下:
charset='GBK'时候,函数定义如下
def 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='GBK')
cur=self.connect.cursor()
#print(cur)
if not cur:
raise(NameError,'数据库访问失败')
else:
return cur
resList4 = "select top 10 XM,* from hsjg where cbarcode='"+str4+"'"
ms = MSSQL(host=hostH , user=userH, pwd=pwdH, db=dbH)
resList1 = ms.ExecQuery(resList4)
发现有字段的中文不能显示

是这个将charset='utf8'
def 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')
cur=self.connect.cursor()
#print(cur)
if not cur:
raise(NameError,'数据库访问失败')
else:
return cur
结果,前面的字段中文能显示了,但是后面的中文字段显示乱码了

难道么有办法同事都显示中文吗,必须有:
charset='utf8' 不变的情况下。用convert(nvarchar(2),jcjg)来实现中文字段的显示
resList4 = "select top 10 convert(nvarchar(6),XM),ZJHM,cbarcode,convert(nvarchar(2),jcjg),scsj from hsj where cbarcode='"+str4+"'"
结果中文字段全部显示出来!

672

被折叠的 条评论
为什么被折叠?



