gpt4 book ai didi

mysql - 将陀螺仪应用程序从 mysql (latin1) 迁移到 mariadb (utf8) 时出现字符编码问题

转载 作者:行者123 更新时间:2023-11-29 09:29:52 24 4
gpt4 key购买 nike

我正在将一个小型陀螺仪应用程序从 MySQL 迁移到 MariaDB。我之前问过这个问题,为什么 MariaDB 不会在 latin1 上启 Action 为服务器编码( MariaDB won't start when character-set-server = latin1 is in my.cnf ),但现在我已经接受只使用 utf8 了。

导入数据转储后:

mysql -uwebuser -p ezine < dump.sql

,原本应该是 autotööstus 的内容却显示为 autot??stus。另外我得到了这个错误:

非法混合排序规则(latin1_general_ci 隐式)和(utf8_general_ci 强制),存储 ??

尝试 1:我删除了数据转储中所有出现的 charset=latin1,并且导入因以下错误而提前终止:

指定的 key 太长;最大 key 长度为 767 字节

尝试2:添加回字符集,但将其设置为charset=utf8,根据这篇文章:MySQL Convert latin1 data to UTF8

导入有效,但 autotööstus 现在显示为 autotööstus

如何将数据转储解释为 latin1 编码内容,但存入 utf8 存储?

最佳答案

如果您出于某种原因无法使用 latin1 作为默认系统编码,这里有一个快速解决方案:

保持数据转储不变。即使它是 latin1 编码,也可以导入为 utf8。

mysql> create database ezine character set utf8 collate utf8_general_ci;

mysql -uwebuser -p --default-character-set=utf8 ezine < dump.sql

现在,在您的网络应用中,您应该可以正确地看到 autotööstus

从现在开始,您的数据库的“ native 货币”是utf8。转储数据库时,必须小心,确保导出的文件仍然是 latin1 编码。否则,您最终会得到过度编码的数据,例如 autotබstus

mysqldump -uwebuser -p --default-char-set=latin1 ezine > dump.sql

关于mysql - 将陀螺仪应用程序从 mysql (latin1) 迁移到 mariadb (utf8) 时出现字符编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927262/

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