ホームページ  >  記事  >  データベース  >  MySQL テーブル内の二重エンコードされた UTF8 文字を修正する方法

MySQL テーブル内の二重エンコードされた UTF8 文字を修正する方法

DDD
DDDオリジナル
2024-10-31 00:15:03891ブラウズ

How to Fix Double-Encoded UTF8 Characters in a MySQL Table?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。