問題は二重にエンコードされたUTF8文字列を使用したMySQLの障害であったため、MySQLがそれを解決する正しい方法です。
次のコマンドを実行すると解決します-
-
mysqldump $DB_NAME -u $DB_USER -p -h $DB_HOST.EXAMPLE.NET --add-drop-table --default-character-set=latin1 > export.sql
--latin1は、MySQLが文字を分割しないように強制するためにここで使用され、それ以外の場合は使用しないでください。 -
cp export{,.utf8}.sql
-バックアップコピーを作成します。 -
sed -i -e 's/latin1/utf8/g' export.utf8.sql
-ファイル内のlatin1をutf8に置き換えて、8859-1ではなくUTF-8としてインポートします。 -
mysql $DB_NAME -u $DB_USER -p -h $DB_HOST.EXAMPLE.NET < export.utf8.sql
-すべてをデータベースにインポートし直します。
これにより、約10分で問題が解決します。