Mysql

Mysql字元集問題

  • December 17, 2010

我正在嘗試將一些數據從一台伺服器導入到另一台伺服器。但是當我這樣做時,我遇到了字元集問題。

像 Goiânia 這樣的詞變成了 Goiâni 和 conceição 變成了 conceição

我的應用程序設置為使用 latin1 字元集

伺服器 1:MySQL 字元集:UTF-8 Unicode (utf8) 表排序規則:latin1_swedish_ci

伺服器 2:MySQL 字元集:UTF-8 Unicode (utf8) 表排序規則:latin1_swedish_ci

我用來從伺服器 1 導出數據的命令 mysqldump -u root -p –default-character-set=iso-8859-1 database_name > db.sql

用於恢復到伺服器 2 的命令 mysql -u root -p database_name < db.sql

根據 mysql 的版本,您想使用以下任一種:

–預設字元集=latin1

要麼

–預設字元集=utf8

在某些版本的 mysqldump 中存在一個奇怪的錯誤,在命令行中指定 utf8 會雙重編碼已經編碼為 utf8 的表,如果我記得的話,該表已在大約一年前的 5.0.51+ 中修復。

如果您在表中正確指定了字元集,我認為您在進行轉儲時不需要使用預設字元集,因為它是從表排序規則和字元集中獲取的。

引用自:https://serverfault.com/questions/150462