Mysql-5
將導入的 latin1 數據更正為 utf8
我從備份中恢復了我的 drupal 站點數據庫,但是完成後我發現導入的數據是這樣的符號,
قوانين كرة
因為備份是使用 latin1 字元集進行的,但我的表和數據庫是 utf8我想要一種將這些數據轉換為 utf8 的方法,以便在我的數據庫中儲存為字母和單詞而不是符號
我怎樣才能做到這一點 ?
您可以使用此命令恢復數據庫
mysql -u someuser -p --default-character-set=utf8 somedatabase < backup.sql
這會覆蓋預設的客戶端字元集。
我還要確保我的表格也是 utf8 格式。
因此,當您使用文本編輯器打開備份文件時,您應該看到utf8作為預設字元集
CREATE TABLE `sometable` ( `c1` varchar(10) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8
如果您仍然遇到問題,請檢查您的備份並確保正在恢復的實際數據格式正確。例如,如果您有一個像 é 這樣的字元,那麼當您在文本編輯器中查看它時,它應該顯示為é,而不是
é
某些不可讀的符號。一個附加說明。utf8_general_ci 和 latin1_swedish_ci 是排序規則而不是字元集。像 UTF8 這樣的字元集可以有多個排序規則,有些是區分大小寫的 _cs,有些是不區分大小寫的 _ci。排序規則為字元比較和排序設置規則。