mssql乱码问题

Posted CrossPython

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mssql乱码问题相关的知识,希望对你有一定的参考价值。

nvarchar类型对中文字段可以正常解码显示,但是varchar类型中文读取异常。所以字段设计最好用nvarchar类型存储中文,对于已经存在的问题,可以有两种解决方式:

1.修改表中字段对类型,将varchar改为nvarchar

2.采用手动编码解码方式可以解决乱码问题,data.encode(\'latin-1\').decode(\'gbk\')

 

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

#encoding=utf-8

 

然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号

conn=pymssql.connect(server=\'.\',user=\'\', password=\'\',database=\'MyTest\',charset=\'utf8\')

 

设置python系统的默认编码(对于文件来说,这招几乎屡试不爽,呵呵~~)

import sys
reload(sys)
sys.setdefaultencoding(\'utf8\')

 

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

以上是关于mssql乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

解决mssql for linux 中文乱码问题

解决mssql localdb 中文乱码问题

Dapper.net Insert mssql unicode 乱码问题

写入mssql数据乱码

python3连接MSSQL数据库 中文乱码怎么解决

python3连接MSSQL数据库 中文乱码怎么解决