Python笔记005:MSSQL查询中文出现乱码解决办法,特别是第二种方法超有用

本文介绍了解决在使用Python和pymssql连接MSSQL时遇到的中文乱码问题的方法。通过调整字符集编码和使用SQL转换函数两种方式,有效解决了不同表中中文显示不一致的问题。
部署运行你感兴趣的模型镜像

问题描述

我平时工作中,常会用Python做些小程序查询数据库,结果发现不同的表里面的中文不知道什么原因有些能显示出来,有些显示出来的是乱码。

 将代码改成如下:

 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')


原因分析:

查了相关资料MSSQL表里面中文一般采用GBK编码。但有些时候使用GBK编码也不起作用


解决方法:

提示:我们可以采用2种方案解决:在第一种方法不能解决的情况下,使用第二种解决方法。

第一种方法:一般来讲,将编码方式改成GBK编码的方式就能解决显示中文是出现乱码的现象。

  def 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是字段名称

    resList0 = "select  top 1 convert(nvarchar(20),name)   from mz_jl where rq>='"+ti1+"'and rq<='"+ti2+"'  and bh="+str

运行结果如下,问题解决!

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值