ラベル MySQL Python の投稿を表示しています。 すべての投稿を表示
ラベル MySQL Python の投稿を表示しています。 すべての投稿を表示

2012年2月27日月曜日

またまたMySQL+Pythonの問題

そういえば、エスケープしてないことに気づいた情弱な俺。
escapeをしようとして。以下の文を書きました。
MySQLdb.escape_string(text);
よし、これで今日のお仕事終わり!!
とはいきませんでした。
なんと、これだとescape_stringはstr型を取る関数らしく。
unicode型を入れるとasciiに変換できないよ!!といわる。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-5: ordinal not in range(128)
ちなみに今回登録したい文字列は"なでこ'かわいいよ'なでこ"です。

すこし悩んだのですが
MySQLdb.escape_string(text.encode("utf-8"));
とすると解決しました。

ちょっと、めんどくさいと思った今日この頃

2012年2月22日水曜日

MySQL+Pythonの文字コード問題

MySQL+Pythonといちゃいちゃしてたら。

お前の使ってるcharsetはutf8じゃないよ。
日本語打てないよとか言ってきました。

ちなみに登録したい文字列は撫子です!!

http://ext.omo3.com/linux/mysql_character_set.html

このページに沿ってMySQLを設定しなおした。
しかし!!治らないってことでもう一度調べた結果。
Pythonのソースコード側も少し書き換えないといけないようです。

MySQLdb.connct(host="localhost", db="hoge",  user="huga", passwd="pass", charset="utf8");

このように書けば晴れてMySQLに撫子と登録することができました。