大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
开门见山,先放解决问题的代码
SELECT CONVERT(NVARCHAR, test_field) AS test_field FROM test_table
WHERE test_condition = '测试中文'
--直接将中文字段test_field(VARCHAR)转化为NVARCHAR,其他类型同理,转换成N开头的类型
接下来才是其他可能可行的解决方案:
- 使用其他库,如 pyodbc(详细信息请阅读相关文档),可参考:https://blog.csdn.net/zhaogeno1/article/details/81367156
- 使用其他库,如 _mssql(详细信息请阅读相关文档),可参考:https://blog.csdn.net/kungbx/article/details/5678779?utm_source=blogxgwz3
如果sql语句里没有中文,可以直接用charset=‘cp936’:
#-*- coding:utf-8 -*-
import pymssql
conn = pymssql.connect("数据库地址:1433", "账号", "密码", "表名",charset='cp936')
# cursor = conn.cursor(as_dict=True) # as_dict=True 输出字典
cursor = conn.cursor()
''' 在sql_query本身没有中文的情况下,test_field这个字段 查出来是中文可以直接通过connect时的charset='cp936'直接解决中文乱码问题 '''
sql_query = "SELECT test_field FROM test_table"
cursor.execute(ls_sql)
# conn.commit() # 提交INSERT等变更
''' # conn.rollback() rollback和commit只是为了sql的同步提交或者回退, 比如sql_1, sql_2, sql_3这三者的同步,不至于sql_1, sql_2执行了,而sql_3报错,造成数据差 '''
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/223007.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...