前一段时间,我使用python连接sql server数据库来完成在数据库的查询工作,数据库的编码使用的是GBK编码,在查询的时候,查询出的结果出现了乱码,有三种解决方案可以解决。
1.可以通过将数据的的编码方式改为UTF-8解决这个问题。
2.可以在查询的时候将SQL语句的字段转换为nvarchar类型,如:
select cid,convert(nvarchar(20),cname) from ctable
3.但是对于公司的数据库不能轻易更改数据库的编码,对于复杂的SQL语句我们进行类型转换会降低SQL的运行效率,所以我们可以通过降低pymssql版本和更新PyHamcrest包的方式解决这个问题,具体如下:
我使用的是pymssql2.1.5版本,首先我们需要将pymssql的版本降到2.1.4版本,亲测2.1.4版本的好用
python -m pip install --user --upgrade pymssql==2.1.4
在降pymssql的时候会出现需要安装PyHamcrest的提示

接下来更新一下PyHamcrest包
pip install --upgrade PyHamcrest
然后在更新一下pymssql包
python -m pip install --user --upgrade pymssql==2.1.4
版本降成功后我们再通过pymssql查询编码为gbk的数据库的中文数据时就会出现正常的中文了。

本文介绍了解决使用Python连接SQLServer数据库时出现GBK编码中文乱码的方法。提供了三种解决方案:更改数据库编码为UTF-8;使用nvarchar类型转换字段;降低pymssql版本至2.1.4并更新PyHamcrest包。
980

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



