ホームページ  >  記事  >  データベース  >  UTF-8 テーブルの Unicode 二重エンコーディングを修正するにはどうすればよいですか?

UTF-8 テーブルの Unicode 二重エンコーディングを修正するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 14:28:03494ブラウズ

How to Correct Unicode Double-Encoding in UTF-8 Tables?

UTF-8 テーブルでの Unicode 二重エンコーディングの修正

「ñ」ではなく「Ãã±」のような異常が発生した場合は、二重エンコードの可能性を示します-UTF-8 文字のエンコーディングの問題。この問題は、CSV ファイルが Latin1 エンコードであると誤ってロードされ、マルチバイト文字が単一文字として誤認識され、その後再び UTF-8 でエンコードされる場合に発生します。

解決策

この二重エンコーディングを修正するには、MySQL 関数を使用できます。

<code class="sql">CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)</code>

この関数は、Latin1 でエンコードされた文字を受け取り、バイナリとしてキャストし、UTF-8 に変換し直します。二重エンコーディングを効果的に削除します。

UPDATE ステートメントによる修正

影響を受けるフィールドを修正するには、UPDATE ステートメントで関数を使用できます。

<code class="sql">UPDATE tablename SET
    field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);</code>

このステートメントを実行すると、問題のある文字が正しい UTF-8 表現に復元されます。

以上がUTF-8 テーブルの Unicode 二重エンコーディングを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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