一尘不染

MySQL 5的UTF8问题

mysql

我正在将WordPress博客和phpBB论坛迁移到新的托管服务器中。我正在使用phpMyAdmin从先前站点中的数据库导入SQL脚本。

当我用Kate打开.sql脚本时,它说它使用UTF8作为编码。当我在新服务器中导入sql时,可以在phpMyAdmin中选择编码,默认情况下选择utf8。

仍然,当我完成数据库的导入后,我直接在phpMyAdmin中阅读了帖子文本,并看到诸如“é”,“ñ”等字符尚未被“解释”并替换为插入的奇怪字符。

我可以看到我的WordPress安装也无法正常工作。显然,这种编码方式存在问题,但我认为问题出在MySQL数据库或phpMyAdmin,而不是WordPress。

MySQL的版本实际上与MySQL 5相同,但版本不同。另外,在迁移论坛数据库时也没有问题,所以这甚至很奇怪。

我不知道该如何解决此问题……欢迎提出任何想法。


阅读 249

收藏
2020-05-17

共1个答案

一尘不染

您是否尝试过添加

SET NAMES 'utf8';

到你的SQL转储?

一般而言,使用utf8或编码的问题是,要获得成功,您必须确保:

  • 该文件编码为utf8,没有签名
  • mysql服务器的默认编码设置为utf8
  • 连接是utf8(这就是为什么将SET NAMES’utf8’放入sql文件的原因)。
  • 所有表和列均具有正确的编码和字符集
  • 您所有的网络文件也必须经过utf8编码。并且仅添加正确的标头是行不通的。您必须打开文件,检查编码是否为utf8,否则,剪切所有内容,将编码更改为utf8,然后将所有内容粘贴回。如果您只是更改编码并保存文件,那么它将不起作用!
2020-05-17