开门见山,先放解决问题的代码
SELECT CONVERT(NVARCHAR, test_field) AS test_field FROM test_table
WHERE test_condition = '测试中文'
接下来才是其他可能可行的解决方案:
如果sql语句里没有中文,可以直接用charset=‘cp936’:
import pymssql
conn = pymssql.connect("数据库地址:1433", "账号", "密码", "表名",charset='cp936')
cursor = conn.cursor()
'''
在sql_query本身没有中文的情况下,test_field这个字段
查出来是中文可以直接通过connect时的charset='cp936'直接解决中文乱码问题
'''
sql_query = "SELECT test_field FROM test_table"
cursor.execute(ls_sql)
'''
# conn.rollback()
rollback和commit只是为了sql的同步提交或者回退,
比如sql_1, sql_2, sql_3这三者的同步,不至于sql_1, sql_2执行了,而sql_3报错,造成数据差
'''