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

DDD
リリース: 2024-10-31 00:15:03
オリジナル
890 人が閲覧しました

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

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