FlaskとMySQLを使用して、かなり単純なWebアプリを開発しています。
私はユニコードに苦労しています。ユーザーは、Wordからコピーしたものを貼り付けることがあり、古いスマートクォート_u'\u201c'
_で転倒します。
少し調べてみると、MySQLへの接続は_Latin1
_文字セットを使用していることがわかります(デフォルトのようです)。
接続にUnicodeを使用するように指定するにはどうすればよいですか?
私はpyMySQLを使用しています。これは、MySQLdbのドロップイン置換であると主張しています。 MySQLdbはconnection
オブジェクトに対してset_character_set(self, charset)
関数を定義しますが、pyMySQLは定義しません(実行しようとするとエラーが発生します)。
pyMySQL source をいじってみました(試しましたが、適切な場所が見つかりませんでした!)。
接続を作成するときに指定できます。
conn = pymysql.connect(Host='localhost',
user='username',
passwd='password',
db='database',
charset='utf8')
私の問題を解決しました。