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包)等或者是普通文本文件也是类似的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。