ホームページ > データベース > mysql チュートリアル > MySQL に UTF8 として誤って保存されている Latin1 文字を修正するにはどうすればよいですか?

MySQL に UTF8 として誤って保存されている Latin1 文字を修正するにはどうすればよいですか?

DDD
リリース: 2024-12-03 15:06:10
オリジナル
411 人が閲覧しました

How Can I Correct Latin1 Characters Incorrectly Stored as UTF8 in MySQL?

MySQL テーブルに UTF8 として格納されている Latin1 文字を修正する

この問題は、挿入中に Latin1 データが UTF8 に不適切に変換されたことが原因で発生します。正しい文字セットを設定したにもかかわらず、古いデータは間違った文字で破損したままになります。この状況を修正するには、影響を受けるデータを正しい UTF8 表現に変換する必要があります。

推奨される解決策には、MySQL 関数の利用が含まれます。

convert(cast(convert(name using latin1) as binary) using utf8)
ログイン後にコピー

この関数は、名前列データを受け取ります。これを Latin1 バイナリとして解釈し、UTF8 に変換します。バイナリへの外部変換により、データが生データとして処理され、それ以上の文字セット変換による破損が防止されます。

クエリの例を次に示します。

UPDATE `table` SET `name` = convert(cast(convert(name using latin1) as binary) using utf8)
WHERE `name` LIKE '%[non-UTF8 characters]%'
ログイン後にコピー

このクエリは、すべての行を非- 名前列の UTF8 文字。データが正しく変換されるようにします。

注:元のエンコード プロセスによりデータがわずかに変更されたため、convert 関数呼び出しで Latin1 バイナリへの内部変換を省略する必要がある場合があります。

以上がMySQL に UTF8 として誤って保存されている Latin1 文字を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート