1

我的任务是将数据库从 MySQL 迁移到 Postgres。但是,此数据库在标记为 的地方有 unicode 字符latin1。所以,我担心运行类似的东西

mysqldump --compatible=postgresql --default-character-set=utf8 -r databasename.mysql -u root databasename

因为我不确定我们是否会因双编码 unicode 字符而感到陌生。也就是将unicode字符编码成unicode

有谁知道我是否可以这样做并按原样维护 unicode?是否有一个幂等的 unicode 编码算法我应该通过管道传输它?

4

2 回答 2

1

使用可以使用我的工具 - 它支持 unicode 符号 https://github.com/mihailShumilov/mysql2postgresql

于 2015-02-09T14:05:01.760 回答
0

正如克雷格上面所说,你是来找乐子的。不仅没有解决这个问题的好工具,而且这些问题可能超出了任何一刀切的工具。问题是,当您跨越编码时,如何解决这个问题超出了数据本身可用的信息,并且首先涉及了解您是如何到达那里的。

现在我假设您的客户端应用程序当前可以很好地处理损坏的数据。如果没有,你还有很多工作要做。如果他们确实处理了它,那么最好的方法是检索数据,在按照客户端应用程序的方式处理数据后将其转换为 UTF8 ,然后对其进行更新。这可能需要一段时间,您应该检查所有可能受影响的数据。这确实是自动化的极限。

如果这还不够,您将不得不手动更正 (ick) 或使用不良数据,但在这种情况下,客户端应用程序很可能已经使用不良数据。

于 2013-11-09T02:41:50.347 回答