SQLAlchemyを使ってMySQLにデータを更新する場合の日本語の文字化けを修正する方法

Twitterのステータス情報などをpythonのurllib2やらで取得し、MySQLに登録するときに起きる日本語の文字化けを修正するテクニック。


SQLAlchemyを使った場合、MySQLにデータを挿入またはデータを更新する場合に、日本語が文字化けするときがある。その場合にとる方法は次の通り



データベース接続の設定

接続パラメータに文字コード(charset)をUTF8に指定する。

sqlalchemy.url = mysql://username:password@host:port/database?charset=utf8


テーブルをセットするときにutf8等にセットすることも有効
参照:crazy()for(;;)you();


これが一番大事!


その他

他に考えられるのは次のようなもの。

SQLAlchemy:create_engine

インスタンス作成時にエンコーディングutf-8に指定する。

engine = create_engine(sqlalchemy.url,encoding='utf-8')

Pythonは日本語さえ上手に扱えれば、かなり融通が利くようになる。