当前位置:  开发笔记 > 编程语言 > 正文

将UTF-8编码转储加载到MySQL中

如何解决《将UTF-8编码转储加载到MySQL中》经验,为你挑选了1个好方法。

我昨天几个小时一直在听这个问题:

我在MySQL 4.1.22服务器上有一个数据库,编码设置为"UTF-8 Unicode(utf8)"(由phpMyAdmin报告).此数据库中的表将默认字符集设置为latin2.但是,使用它的Web应用程序(用PHP编写的CMS Made Simple)在utf8中显示页面...

无论如何搞砸了,它确实有效.Web应用程序正确显示字符(主要使用捷克语和波兰语).

我运行:"mysqldump -u xxx -p -h yyy dbname> dump.sql".这给了我一个SQL脚本:

在以UTF-8显示时,在任何编辑器(如记事本+)中看起来都很完美- 所有字符都能正常显示

脚本中的所有表都将默认字符集设置为latin2

它有"/*!40101 SET NAMES latin2*/;" 开头的行(在其他设置中)

现在,我想将此数据库导出到在MySQL 5.0.67上运行的另一台服务器,同时将服务器编码设置为"UTF-8 Unicode(utf8)".我复制了整个CMS Made Simple安装,复制了dump.sql脚本并运行了"mysql -h ddd -u zzz -p dbname

我尝试设置:
SET character_set_client = utf8;
SET character_set_connection = latin2;

和所有组合(只是为了安全,即使它对我没有任何意义):latin2/utf8,latin2/latin2,utf8/utf8等 - 没有帮助.所有角色仍然在争吵,但有时以不同的方式:).

我还尝试用脚本中的utf8替换所有latin2设置(为表设置名称和默认字符集).没有.

这里有没有MySQL专家可以用几句话来解释(我相信它毕竟很简单)这整个编码的东西真的有用吗?我看了9.1.4.连接字符集和排序,但没有找到任何帮助.

谢谢,马特



1> kolrie..:

您是否尝试添加--default-character-set = name选项,如下所示:

mysql --default-character-set=utf8 -h ddd -u zzz -p dbname < dump.sql

之前我遇到过这个问题,并且在使用该选项后它起作用.

希望能帮助到你!


+1,添加`--default-character-set = utf8`为我解决了类似的问题.
推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有