1

pyodbc を使用して MS SQL サーバー データベースに接続しています。私が得るエラーは次のとおりです

invalid byte sequence for encoding "UTF8": 0x93
HINT:  This error can also happen if the byte sequence does not match the  
encoding expected by the server, which is controlled by "client_encoding".

SQL データベースは Latin1 を使用してエンコードされており、UTF8 を想定している django で postgres を使用しています。

私はpyodbcの使用に非常に慣れていないため、この問題を解決できません。私はグーグル検索の山をフィルタリングしようとしましたが、運がありませんでした. いくつかの助けをいただければ幸いです。

編集

Postgres データベースは、プロジェクトのメイン データベースです。SQL Server からデータを取得できるようにしたいと考えています。ただし、このプロセスは頻繁には行われません...

エラーが発生するポイントは、SQL Server db からの読み取りです。

4

1 に答える 1

3

あなたはほとんど手がかりを与えていませんが、合理的な推測は次のとおりです。

正しいエンコーディングを使用して MS SQL Server データを Unicode にデコードし、postgres に転送するために (必ずしもすぐにではなく) 'UTF-8' としてエンコードする必要があります。

latin1SQL Server db で使用されているエンコーディングが であり、そうでないと考える理由は何cp125xですか? MSlatin1製品に当てはまる可能性はほとんどありません。'\x93'(通常の容疑者)としてデコードされたときの誤ったバイトcp1252は、U + 201C LEFT DOUBLE QUOTATION MARKを提供します。これは、MS Wordなどで一般的に使用され、データに貼り付けられて最終的にdbになります。as をデコードするとlatin1U+0093 が生成されます。これは、実際にその使用法が鶏の歯と同じくらいまれな難解な制御文字です。

于 2011-03-22T22:53:09.613 に答える