2

を使用して、 MS-ExcelからPostgreSQLにデータをインポートしています。python(2.6)pyodbc

直面している問題は次のとおりです。

left single quotation mark(ANSI hex code : 0x91)エクセルソースには、などの文字があります。これで、pyodbcを使用してPostgreSQLにインポートすると、終了してエラーが発生しますDatabaseError: invalid byte sequence for encoding "UTF8": 0x91

試したこと:decode('unicode_escape')とりあえず使ってみました。ただし、これは単に関係する文字を削除/エスケープするため、これを行うことはできません。

別の試用版:最初にデコードし、どこでもUnicodeをデコードし、後で必要に応じてデータベースからエンコードします。また、手元のプロジェクトが拡大しているため、これを行うことはできません。

タスクを実行するためのいくつかのメソッド/手順/組み込み関数を提案してください。

4

1 に答える 1

1

ソースドキュメントの実際のエンコーディングを調べます。かもしれませんWIN1251。トランスコードするか(たとえば、iconvを使用して)、client_encodingそれに応じてPostgreSQLのを設定します。

に設定がない場合pyodbc(私にはわかりません)、いつでもプレーンSQLコマンドを発行できます。

SET CLIENT_ENCODING TO 'WIN1251';

詳細については、マニュアルの「サーバーとクライアント間の自動文字セット変換」の章を参照してください。

于 2011-11-23T11:25:55.180 に答える