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

Barbara Streisand
リリース: 2024-11-01 14:28:03
オリジナル
493 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!