二重エンコードされた UTF8 文字からの回復
LOAD DATA INFILE を使用して以前にインポートされたデータは、誤って Latin1 でエンコードされていると想定されていました。その結果、マルチバイト文字は個々のバイトに分割され、その後 UTF8 でエンコードされ、二重エンコードが発生しました。これにより、"ñ" ではなく "ã±" などの文字が破損します。
これらのエラーを修正するには、特別な MySQL 関数を利用して、二重エンコード後に正しい UTF8 文字列を復元できます。
CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)
この関数を UPDATE ステートメントに統合して、影響を受けるフィールドを修正できます:
UPDATE tablename SET field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);
このステートメントを実行すると、データベースは二重エンコードされた値を正しい UTF8 の値に置き換え、文字の異常を解決します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3