k、 这表明,对于拉丁语1_General_CI_,使用的编码是cp1252。当然,拉丁语1cp1252“您的更新”“我发现编码是cp1252”“是完全错误的。@约翰:我已经改变了反映这一点的问题,并且我能够从驱动程序中解决问题,而没有在python代码中

k、 这表明,对于拉丁语1_General_CI_,使用的编码是cp1252。当然,拉丁语1cp1252“您的更新”“我发现编码是cp1252”“是完全错误的。@约翰:我已经改变了反映这一点的问题,并且我能够从驱动程序中解决问题,而没有在python代码中,python,sql-server,encoding,sqlalchemy,Python,Sql Server,Encoding,Sqlalchemy,k、 这表明,对于拉丁语1_General_CI_,使用的编码是cp1252。当然,拉丁语1cp1252“您的更新”“我发现编码是cp1252”“是完全错误的。@约翰:我已经改变了反映这一点的问题,并且我能够从驱动程序中解决问题,而没有在python代码中指定编码。不幸的是,我们无法控制该数据库,因此无法决定数据的存储方式:-(这与您的问题有关吗?检查您的ODBC提供程序是如何配置的,也许您可以从那里确保编码的更改。别忘了在pyodbc外部测试这些。是的,就是这样!问题是我没有在UTF-8模式下


k、 这表明,对于拉丁语1_General_CI_,使用的编码是cp1252。当然,拉丁语1cp1252“您的更新”“我发现编码是cp1252”“是完全错误的。@约翰:我已经改变了反映这一点的问题,并且我能够从驱动程序中解决问题,而没有在python代码中指定编码。不幸的是,我们无法控制该数据库,因此无法决定数据的存储方式:-(这与您的问题有关吗?检查您的ODBC提供程序是如何配置的,也许您可以从那里确保编码的更改。别忘了在pyodbc外部测试这些。是的,就是这样!问题是我没有在UTF-8模式下配置驱动程序。我必须在/etc的配置中添加
client charset=UTF-8
)/freetds.conf文件为我省去了很多sqlserver的心痛。谢谢。
for sqlalchemy import *

def connect():
    return pyodbc.connect('DSN=database;UID=uid;PWD=password')

engine = create_engine('mssql://', creator=connect, encoding='latin1')
connection = engine.connect()
engine = create_engine('mssql://yourdb', connect_args={'convert_unicode': True})