pymssql 去链接sql server,中文乱码,求助?

2013-07-23 16:49:23 +08:00
 wuxiaolin
最近搞个东西需要去sql server拿数据过来做汇总,发现从那么拿过来的数据中文都是直接问号显示,但奇怪的事我本机win系统下是正常的,到了我服务器上面(linux)就乱套了,读出来的数据只要是中文的,就全部都是问号显示,请问这是pymssql 的问题还是服务器问题?有什么方法解决么
5927 次点击
所在节点    Python
9 条回复
loading
2013-07-23 17:01:04 +08:00
在SQL server开跟踪,看查询语句是否有乱码。
我在windows下连的,编码搞得郁闷,各种encode,decode。
loading
2013-07-23 17:02:51 +08:00
我选用了adodbapi
xzl
2013-07-23 17:24:20 +08:00
指定连接编码为UTF-8即可。
wuxiaolin
2013-07-23 17:36:37 +08:00
@xzl 这东西挺怪的,我在win上面跑,设置charset='utf8' 后,只能读到utf8的数据,中文都读不到,当时真的就各种冷汗
wuxiaolin
2013-07-23 17:42:18 +08:00
刚调试过linux的,设置成utf8之后,只能读到非中文的数据
lerry
2013-07-23 17:52:40 +08:00
我用过一段,如果直接print结果的话,文件设置
# -*- coding: gb2312 -*-
连接不指定字符

如果结果别处保存的话
# -*- coding: utf-8 -*-
con = pymssql.connect(host='xxxx', user='sa', password='xxxx', database='xxx',charset='utf8')

我记得在Linux上试过,也是没有问题的
est
2013-07-23 17:55:53 +08:00
@wuxiaolin

把这行SQL语句结果贴出来吧:

show variables like '%char%';
wuxiaolin
2013-07-23 17:56:23 +08:00
啊啊,蛋疼,原来是我程序里面过滤了那些数据
wuxiaolin
2013-07-23 17:57:21 +08:00
@est
@lerry
@xzl
@loading 感谢这么多位啊,是我过滤了那些数据,之前一直以为是charset问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/76721

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX