web-dev-qa-db-ja.com

pyMySQLセット接続文字セット

FlaskとMySQLを使用して、かなり単純なWebアプリを開発しています。

私はユニコードに苦労しています。ユーザーは、Wordからコピーしたものを貼り付けることがあり、古いスマートクォート_u'\u201c'_で転倒します。

少し調べてみると、MySQLへの接続は_Latin1_文字セットを使用していることがわかります(デフォルトのようです)。

接続にUnicodeを使用するように指定するにはどうすればよいですか?

私はpyMySQLを使用しています。これは、MySQLdbのドロップイン置換であると主張しています。 MySQLdbはconnectionオブジェクトに対してset_character_set(self, charset)関数を定義しますが、pyMySQLは定義しません(実行しようとするとエラーが発生します)。

18
MalphasWats

pyMySQL source をいじってみました(試しましたが、適切な場所が見つかりませんでした!)。

接続を作成するときに指定できます。

conn = pymysql.connect(Host='localhost',
                       user='username',
                       passwd='password',
                       db='database',
                       charset='utf8')

私の問題を解決しました。

57
MalphasWats