ホームページ > データベース > mysql チュートリアル > UTF8 MySQL テーブルで破損した Latin1 文字を回復するにはどうすればよいですか?

UTF8 MySQL テーブルで破損した Latin1 文字を回復するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-30 14:28:11
オリジナル
331 人が閲覧しました

How Can I Recover Corrupted Latin1 Characters in UTF8 MySQL Tables?

UTF8 テーブルの Latin1 文字の回復: 解決策

前述したように、PHP と MySQL の間で文字セットを設定すると、新しい挿入が保証されます。正しく保存されています。ただし、以前は Latin1 として保存され、その後破損した発音記号が含まれる古いデータを回復するのは困難な場合があります。

この問題を解決するには、MySQL 変換関数を利用できます。

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

デフォルトでは, この機能を使用すると、ほとんどの破損したデータをそれ以上の変更を加えることなく修復できます。ただし、最初のエンコード変換中にデータがどのように変更されたかに基づいて内部変換を調整する必要がある場合があります。

次の例を考えてみましょう。

$result = mysql_iquery('SELECT * FROM `table`');
while ($row = mysql_fetch_assoc($result)) {
    $message = $row['name'];
    $message = convert(cast(convert($message using latin1) as binary) using utf8);
    mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string($message).'" WHERE `a1`="'.$row['a1'].'"');
}
ログイン後にコピー

この関数を使用すると、次のようになります。破損した発音記号を回復し、影響を受ける行を正しく更新できるようになります。

以上がUTF8 MySQL テーブルで破損した Latin1 文字を回復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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