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
私のドライバーの設定の下で。