首頁 > 資料庫 > 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板