Mysql-5

將導入的 latin1 數據更正為 utf8

  • April 12, 2012

我從備份中恢復了我的 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。排序規則為字元比較和排序設置規則。

http://en.wikipedia.org/wiki/Collation

引用自:https://dba.stackexchange.com/questions/16371