gpt4 book ai didi

mysql - 导出latin1数据库并导入为utf8/转换为utf8

转载 作者:行者123 更新时间:2023-11-29 15:37:18 25 4
gpt4 key购买 nike

我正在开发一个使用旧数据库的网站,该数据库在外部 MySQL 4.1 服务器(服务器 A)上运行。数据库使用 latin1_swedish_ci 排序规则,表和列也是如此。有一台运行 MySQL 5 的新服务器 B 来替换服务器 A。编码应为 utf8_unicode_ci。

  1. 我导出服务器 A 上的数据库: mysqldump -u root -p --opt --quote-names --skip-set-charset --default-character-set=latin1 db_a -r db_a.sql

  2. 通过 scp 将 db_a.sql 从服务器 A 传输到服务器 B

  3. 将 latin1 替换为 utf-8 sed -e 's/CHARSET\=latin1/CHARSET\=utf8\ COLLATE\=utf8_general_ci/g' db_a.sql > db_a2.sql

  4. 将文件转换为 utf-8 iconv -f latin1 -t utf8 db_a2.sql > db_a3.sql

  5. 导入db_a3.sql

在 phpmyadmin 中,所有内容都正确打印。但新的客户端应用程序在文本列中显示伪影。

我尝试了上述步骤的不同变体,但没有成功。包括导入为 latin1 和使用 mysql Convert 命令。有人知道我的问题的解决方案吗?

最佳答案

最好将其加载为 latin1,然后修复问题。

但是,这并不简单,因为需要考虑多种场景。看到这个:http://mysql.rjweb.org/doc.php/charcoll#fixes_for_various_cases请特别注意,至少有 2 种不同的方法可以执行 ALTER。如果选错了,数据会变得乱码更严重。

要查看您拥有的内容,请使用它作为数据示例:

SELECT col, HEX(col) FROM ... WHERE ...

关于mysql - 导出latin1数据库并导入为utf8/转换为utf8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58112297/

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