PyMySQLでUnicodeEncodeError

Python + PyMySQLでアップデートしたりインサートするとき、データに日本語が含まれていると、エラーになります。

UnicodeEncodeError: 'latin-1' codec can't encode characters

データベースの文字コードはUTF-8にしているはずなのに、変ですね。 🙁

解決策

こちらのサイトに解決方法がありました。

MySQLへ接続するときに、charsetパラメータで文字コードを指定するそうです。
すなわち、

conn = pymysql.connect(host='localhost', user='solima',                         
                       passwd='password', db='sample',                        
                       charset='utf8')

のように記述します。

どうやら、pymysql.connect関数のデフォルト文字列がlatin-1に設定されているようです。

関連記事

PythonからMySQLにアクセスする

Pythonプログラミング物語 © 2016 Frontier Theme