リモートホストのUbuntu12.04LTSおよびMSSQL2008のデータベースバックエンドとしてdjango-pyodbcを使用しています。キリル文字を返す以外はうまく機能します。それらの代わりに疑問符が表示されます-'?'。この問題の原因を調査し始めました。
私が理解している限り、MSSQL-djangoチェーンは次のように見えます。
MSSQL <-> FreeTDS <-> unixODBC <-> pyodbc <-> django-pyodbc
だから私はFreeTDSから始めました。tsqlでクエリを実行すると、うまく機能し、キリル文字を含むすべてのシンボルを確認できます。
次はisqlでした-私が理解している限り、FreeTDS<->unixODBCペアをテストできます。そして、そこで私は適切なデータを取得できませんでした。実際、キリル文字を含むisql列でクエリを実行すると、空であるか、表示されていない記号で構成されています。FreeTDS<->unixODBC間の通信に問題があると思います。この問題の原因は何ですか?ところで、私もiusqlを試しました-何も変わっていません。
MSSQL照合はCyrillic_General_CI_ASです。
freetds.confの内容:
[global]
tds version = 4.2
dump file = /tmp/freetds.log
debug flags = 0xffff
timeout = 10
connect timeout = 10
client charset = UTF-8
text size = 64512
[egServer50]
host = symachine.domain.com
port = 5000
tds version = 5.0
[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 7.0
[rfxdigest]
host = mssql-iis-1
port = 1433
tds version = 8.0
client charset = UTF-8
odbc.iniの内容:
[RFX]
Description = Rfx digest server
Driver = FreeTDS
Database = RFXDB
Servername = rfxdigest
TDS_Version = 8.0
編集115.08.12
pyodbcを使用するPythonでは、「?」キリル文字の代わりに-私は両方のPythonバージョン(UCS2とUCS4)を試しました。