是否有可能简单地使用mysql -h [IP] -u root -p [DATABASE] < [FILE].sql
来恢复数据库会导致西班牙语字符丢失他们的“西班牙语”并显示所有时髦?
问问题
114 次
2 回答
1
从此:_
该问题本质上与 MySQL 中的默认排序规则与 .sql 文件中指定的排序规则/字符集之间的不匹配有关。要解决此问题,请确保它们都匹配。如果您使用的是 MySQL 4+,则默认排序规则可能是 UTF-8,因此只需确保该文件也设置了默认排序规则。将以下行放在 .sql 的顶部似乎可以解决问题:
/*!40101 SET NAMES utf8 */;
原因似乎与导入器有关:即使在数据库和表上设置了默认排序规则,如果整个文件没有默认值,则每次插入都会被误解为 UTF-8 表,必须封装为 latin1 . 还要检查 .sql 文件中的表创建语句是否也是 UTF-8,如下所示:
CREATE TABLE `wp_comments` ( ... ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
于 2012-08-22T13:07:21.780 回答
0
这听起来像是 latin1 与 utf8 不匹配。旧数据库可能已转储为一种编码,而新数据库则使用不同的默认编码创建。尝试使用--default-character-set=utf8
标志或用 latin1 替换 utf8 是行不通的。
于 2012-08-22T13:02:44.013 回答