做测试先自己建了数据库,为了方便所有数据默认varchar(50)
#encoding=utf-8
import pymssql
# try:
conn = pymssql.connect(host='localhost',server='LAPTOP-5RJBJM7N\BESSIE', port='1433',
user='sa', password='123456', database='W_Test',charset='utf8')
if conn:
print("连接成功!")
cursor = conn.cursor() #创建一个游标对象
sql = "select * from search_sql01"
# sql = "select * from product_info"
cursor.execute(sql)
res = cursor.fetchall()#读取查询结果
print(res)
print("**************************")
col_result = cursor.description
print(col_result)
for r in res:
print(r)
conn.close()
show数据时发下报错情况如下
1、charset='utf8'列表内的数据乱码
2、charset='GB2312'列名乱码
为了这个问题查了一个晚上的文献终于解决了
无非就是用sql语句将varchar转为nvarchar类型
select convert(nvarchar(50),table_colum)
这里尝试了很多次使用语句转换都有各种报错,不就是转换个类型嘛,那干嘛不直接去数据库改啊!一拍大腿回数据库把几个关键会用到中文的列都改成了nvarchar
再把代码中charset='utf8'设置好,一运行这不就出来了嘛