gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:37:50 26 4
gpt4 key购买 nike

昨天我已经为这个问题苦苦思索了几个小时:

我在 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 显示时在任何编辑器(如 Notepad+)中看起来都很完美 - 所有字符均正确显示
  • 脚本中的所有表都将默认字符集设置为 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 < dump.sql”。之后,在显示CMSMS网页时,所有字符都被打乱。

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

所有组合(为了安全起见,即使它对我来说没有任何意义):latin2/utf8、latin2/latin2、utf8/utf8 等 - 无济于事。所有字符仍然乱码,但有时会以不同的方式乱码:)。

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

这里有没有 MySQL 专家可以用几句话解释一下(我相信这毕竟很简单)整个编码的真正工作原理是什么?我读了9.1.4. Connection Character Sets and Collations但在那里找不到任何帮助。

谢谢,马特

最佳答案

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

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

我以前遇到过这个问题,在使用该选项后它起作用了。

希望对您有所帮助!

关于mysql - 将 UTF-8 编码的转储加载到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/152288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com