python 读取sql server数据中文乱码

【问题分析】:①、默认情况下SQL Server 使用ISO字符集(latin1字符集);
②、python的 pyodbc模块默认以'utf8'编码方式解码(默认charset='utf8');
③、数据库内的中文,被python以二进制的方式读取后以'utf8'方式解码显示为乱码,其二进制数据未改变。

解决方案一:

  str.encode('latin1').decode('GB2312'), str==乱码的字符

解决方案二:

  连接数据库采用编码:charset='GB18030'   

onnection = pyodbc.connect(
    "Driver={"SQL Driver"};"
    "Server= "ServerName";"
    "Database="DatabaseName";"
    "UID="UserName";"
    "PWD="Password";"
    charset='GB18030'
)
 
 
posted @ 2022-05-27 17:13  歆邧  阅读(2074)  评论(0编辑  收藏  举报