如何使用latin1字符集导出数据并维护此字符集

时间:2017-04-20 19:55:26

标签: mysql unicode utf-8 character-encoding

我有一个MySQL数据库,其中数据以latin1字符编码存储。

我需要在mysql数据库的新环境中移植这些数据,但完全支持utf8编码。

我已阅读了很多帖子,最后为了解决这个问题,我选择使用mysqldump导出数据而不使用任何特殊参数作为选项--default-character-set。这似乎工作正常,但我对它有很多怀疑。

这是解决此问题的正确方法吗? 如果没有,我如何导出和导入这些数据并保持其原始编码?

一些技术信息。我需要通过两个服务器Linux Ubuntu执行此迁移,其中mysql的版本为5.6.33。

任何帮助都表示赞赏。

再次感谢Lorenzo。

1 个答案:

答案 0 :(得分:0)

为什么你关心存储的字符集是什么?我的观点是,你可以隐藏这个细节。无论如何,如果必须的话,我会告诉你如何以这种方式存储它。

导出时,指定将文件写入latin1或utf8或utf8mb4。

导入时,首先声明导入文件是 编码。

然后将列和表声明为latin1或utf8或utf8mb4。如有必要,负载将进行转码。

所有latin1字符都有相应的utf8 / utf8mb4 / UTF-8编码,因此它不会在你的场景中偶然发现

使用utf8mb4构建所有新表。服务器默认到utf8;你可以覆盖你的列/表声明。

可以将列声明为latin1但使用utf8mb4连接。同样,转码将是透明的,无损失(或读取)。