絵文字やU+FFFFコードポイントを超える他の文字のために、PythonとMySQLの間でUTF-8文字の全範囲を正しく交換することに苦労しました。
すべてが正常に機能することを確認するために、次のことを行う必要がありました。
-
utf8mb4
を確認してくださいCHAR
に使用されました 、VARCHAR
、およびTEXT
MySQLの列 - PythonでUTF-8を適用する
- PythonとMySQLの間で使用されるUTF-8を強制します
PythonでUTF-8を適用するには、Pythonスクリプトの1行目または2行目として次の行を追加します。
# -*- coding: utf-8 -*-
PythonとMySQLの間にUTF-8を適用するには、次のようにMySQL接続を設定します。
# Connect to mysql.
dbc = MySQLdb.connect(host='###', user='###', passwd='###', db='###', use_unicode=True)
# Create a cursor.
cursor = dbc.cursor()
# Enforce UTF-8 for the connection.
cursor.execute('SET NAMES utf8mb4')
cursor.execute("SET CHARACTER SET utf8mb4")
cursor.execute("SET character_set_connection=utf8mb4")
# Do database stuff.
# Commit data.
dbc.commit()
# Close cursor and connection.
cursor.close()
dbc.close()
このように、encode
などの関数を使用する必要はありません。 およびutf8_encode
。