-1

PyODBC でクエリを作成すると、次のようにテーブル データが取得されます。

 u'\u3836\u3431\u3132\u3230\u3030'

私のデータベース列の実際の内容は次のとおりです。

 6814210200

pyodbcの戻り値をに明示的にエンコードするとutf-16、次のようにコンテンツが取得されます (最も近いもの):

>>> print d['data'][0]['upc'].encode('utf-16')
 ��6814210200
#^^ two junks

私の質問は: PyODBC クエリからエンコードされた値を直接取得するにはどうすればよいですか?

私はすでにCHARSET=UTF16データベース接続文字列を次のように設定しています。

pyodbc.connect("DRIVER=<driver_name>;" + \
                                 "SERVER=<server_ip>;" +\
                                 "DATABASE=<database>;" +\
                                 "UID=<user>;" +\
                                 "PWD=<password>;" + \
                                 "CHARSET=UTF16",    # setting charset
                                 ansi=True)

また、すべてのodbc.iniファイルodbcinst.iniで、次のように設定しました。

 UnicodeTranslationOption = utf16 
 CharacterTranslationOption = all

私のドライバーの設定の下で。

4

1 に答える 1