ODBC接続を使用して、Pythonを使用してMSSQLデータベースからデータを抽出しています。次に、xlwt を使用して、抽出したデータを Excel ファイルに入れようとしています。
ただし、これにより次のエラーが生成されます。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd8 in position 20: ordinal not in range(128)
スクリプトを実行してデータを印刷しただけで、データベース内の問題のある文字がスラッシュ付きの O であることを確認しました。Python の印刷では、「\xd8」と表示されます。
xlwt のワークシート エンコーディングは UTF-8 に設定されています。
これを直接 Excel に取り込む方法はありますか?
編集
以下の完全なエラーメッセージ:
C:\>python dbtest1.py
Traceback (most recent call last):
File "dbtest1.py", line 24, in <module>
ws.write(i,j,item)
File "build\bdist.win32\egg\xlwt\Worksheet.py", line 1032, in write
File "build\bdist.win32\egg\xlwt\Row.py", line 240, in write
File "build\bdist.win32\egg\xlwt\Workbook.py", line 309, in add_str
File "build\bdist.win32\egg\xlwt\BIFFRecords.py", line 25, in add_str
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd8 in position 20: invalid
continuation byte