22 02 2013 Python SQLAlchemy Tweet
WindowsのOracleにアクセスしてSQLAlchemyを使おうとすると日本語が化ける。
engine = create_engine("xxxxxxxx", encoding='cp932')
とcreate_engineまわりをいじっても全然改善できない。これはcx_Oracleまわりかなぁとそっち方面を攻めたら解決したのでメモ。
Oracleのエンコーディングを調べる
対象のDBにアクセスしてコマンドを叩く
SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';
JA16SJISTILDEという文字列が返ってきた。
環境変数を設定する
スクリプト中で環境変数を設定する
import os os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"
これで解決した。