UTF-8 テーブル内の二重エンコードされた UTF8 文字の修正
LOAD DATA INFILE を使用した以前のインポート操作では、入力 CSV が誤って想定されていました。ファイルは Latin1 でエンコードされていました。これにより、マルチバイト文字が 2 つのシングルバイト文字に分割され、その後 UTF-8 で二重エンコードされ、「ñ」ではなく「Ãã±」などの異常が発生しました。
これらの誤ってエンコードされた文字列を修正するために、MySQL はCONVERT() 関数を使用した解決策を提供します。
CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)
この関数は、二重エンコードされたフィールドを取得し、Latin1 (元のファイル エンコーディングを想定) からバイナリ表現、そして最終的に UTF-8 に順次変換します。二重エンコーディングを効果的に元に戻します。
この修正を適用するには、UPDATE ステートメントを実行できます。
UPDATE tablename SET field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);
このステートメントは、既存のフィールド値を修正された値で置き換え、意図した UTF を復元します。マルチバイト文字の -8 表現。
以上がMySQL テーブル内の二重エンコードされた UTF8 文字を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。