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