Python MySQLdbモジュールを使用しているときに、これと同じ問題が発生しました。 MySQLでは、文字セットに関係なく、テキストフィールドに必要なほぼすべてのバイナリデータを格納できるため、ここで解決策を見つけました:
編集:最初のコメントの要求を満たすために、上記のURLから引用してください...
"UnicodeEncodeError:'latin-1'コーデックは文字をエンコードできません..."
これは、MySQLdbが通常すべてをlatin-1にエンコードしようとするためです。これは、接続を確立した直後に次のコマンドを実行することで修正できます。
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')
「db」は
MySQLdb.connect()
の結果です 、および「dbc」はdb.cursor()
の結果です。 。