![MySQL 转储中未正确报告重音符号](https://linux22.com/image/561005/MySQL%20%E8%BD%AC%E5%82%A8%E4%B8%AD%E6%9C%AA%E6%AD%A3%E7%A1%AE%E6%8A%A5%E5%91%8A%E9%87%8D%E9%9F%B3%E7%AC%A6%E5%8F%B7.png)
我在 Debian Sqeeze 上使用 MySQL 5.1.58,并尝试恢复数据库的转储。恢复后,我注意到所有重音字符都变成了其他字符,如 ù 或 è:完全不同。
查看转储后,我发现问题不在于导入,而在于导出,因为转储中存在奇怪的字符。
我从 ArchLinux 上的另一个 MySQL (5.5) 安装中导出了该转储。我还尝试在 mysqldump 中使用参数 --default-character-set=8tf8,但没有成功。
先感谢您。
答案1
这是 的一个常见问题mysqldump
。不要使用utf8
作为默认编码,而是使用latin1
。此外,您还可以使用-N
(将指定SET NAMES
),以便编码文本不会被 mysql 重新编码。即:
mysqldump -u username -p --default-character-set=latin1 -N database > backup.sql
mysql -u username -p --default-character-set=latin1 database < backup.sql
(来源)