我正在将我的WordPress博客和phpBB论坛迁移到新的托管服务器中。我正在使用phpMyAdmin从以前站点中的数据库导入SQL脚本。
当我用Kate打开.sql脚本时,它说它使用UTF8作为编码。当我在新服务器中导入sql时,我在phpMyAdmin中可以选择编码,默认情况下选择utf8。
但是,当我完成导入数据库时,我直接在phpMyAdmin中阅读帖子文本,并看到诸如“é”,“ñ”等字符,这些字符未被“解释”并被奇怪的字符替换insted的。
我可以看到我的WordPress安装也不起作用。显然这个编码有问题,但我认为问题出在MySQL数据库或phpMyAdmin而不是WordPress。
MySQL的版本几乎相同,MySQL 5,但是版本不同。此外,在迁移论坛数据库时没有问题,所以这甚至是陌生人......
我很想知道如何解决这个问题......欢迎任何想法。
答案 0 :(得分:10)
您是否尝试过添加
SET NAMES 'utf8';
到你的sql转储?
utf8或编码通常是为了成功,你必须确保:
答案 1 :(得分:1)
非常感谢您的回答。我找到了解决方案,我觉得以前没有意识到它真的很蠢。一切都应该工作正常:
-File用utf8编码 -tables用utf8声明:
SET character_set_client = utf8;
-MySQL服务器配置了utf8
等
我首先没有意识到的是我正在使用来自cPanel备份向导的数据库备份。一旦我意识到这一点,我在旧服务器上使用phpMyAdmin导出数据库,将其导入新服务器,并解决问题,修复问题。
phpMyAdmin比cPanel更了解phpMyAdmin:P显然cPanel导出脚本以便用cPanel本身导入。这可能也很有效,但我更信任phpMyAdmin。
非常感谢您的回答。
答案 2 :(得分:1)
我遇到了同样的问题,因为我与它搏斗了大约一个小时,它打破了我的许多网站,我想我会看看是否还有其他人在努力解决这个问题并提出解决方案:解决方案很简单就是在导入时指定导入字符集。
如果您具有对主机的SSH访问权限,请先再次在新数据库中删除所有表,然后在SSH会话中运行此命令(假设您的旧转储文件为 olddatabase.dump.sql ):
$ mysql -h 主机 -u 用户名 -p 密码 --default-character-set = utf8 数据库< olddatabase.dump.sql (用适当的值替换主机,用户名,密码和数据库)
这是解决问题的最简单,最直接的方法。