老舊版本的 Mysql4 資料庫或 Joomla! 1.0 時代,常常會見到 latin1 編碼的資料表,在phpMyAdmin上觀看是亂碼,匯出.sql檔後也是一團糟,但網站本身卻可正常讀取。
這是因為資料表雖然設定為latin1,但網站還是utf-8的資料。 因此MySql以latin1來儲存utf-8編碼的文字,讀取時也用latin1讀取,所以會正常還原為原本的資料。
當資料庫轉移要解決這問題時,我們就需要用到 mysqldump 來處理了。
指令只需要這樣下:
mysqldump -u {username} -p{password} {database} > {file_name}.sql --default-character-set=latin1
就能成功用latin1導出原本是utf-8的資料,此時用文件打開就能看到正常的文字了。(要注意,-p與密碼之間無空格,但-u與帳號名稱之間有空格)
範例:
mysqldump -u root -p12345678 database > database.sql --default-character-set=latin1
Windows 下的 mysqldump 在 mysql / bin 下面,用cmd即可操作
範例:
C:\AppServ\mysql\bin\mysqldump -u root -p12345678 database > database.sql --default-character-set=latin1
database.sql 會產生到你操作當下鎖在的目錄。