二重エンコードされた UTF8 文字からの回復
LOAD DATA INFILE を使用して以前にインポートされたデータは、誤って Latin1 でエンコードされていると想定されていました。その結果、マルチバイト文字は個々のバイトに分割され、その後 UTF8 でエンコードされ、二重エンコードが発生しました。これにより、"ñ" ではなく "ã±" などの文字が破損します。
これらのエラーを修正するには、特別な MySQL 関数を利用して、二重エンコード後に正しい UTF8 文字列を復元できます。
CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)
この関数を UPDATE ステートメントに統合して、影響を受けるフィールドを修正できます:
UPDATE tablename SET field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);
このステートメントを実行すると、データベースは二重エンコードされた値を正しい UTF8 対応する値に置き換え、解決します。性格の異常
以上がMySQL で二重エンコードされた UTF8 文字を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。