快速轉換 MySQL latin1 編碼為 utf-8

Written by Simon Asika on

老舊版本的 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 會產生到你操作當下鎖在的目錄。

Control Tools

WS-logo