我正在将数据从 SQL Server 数据库迁移到 MySQL 数据库。
很少有表格包含英语以外语言的数据。数据主要采用流行的印度语言,如印地语、马拉地语等。
我检查了这些表,发现包含其他语言数据的字段已声明为:
Description nvarchar
对于这类字段,我在 MySQL 中创建了如下字段
Description longtext (with utf8_general_ci collation)
我是否遗漏了什么,这些设置应该起作用吗?
最佳答案
这要看情况。如果你能得到几个印度字符的十六进制,我们就可以验证它是否是用utf8编码的。 (在utf8中,一个印度字符的十六进制一般为3字节E0 xx yy
。)假设是utf8,则声明表/column 为 CHARACTER SET utf8
可以让它轻松接受字符。您还必须声明您的客户端正在使用 utf8 进行通信。什么客户端?
我建议不要使用比 MEDIUMTEXT
(允许 16M 字节,可能绰绰有余)或 TEXT
(64KB) 更大的内容,而不是 LONGTEXT
( 4GB 限制)。
对于印度字符集,我不熟悉 utf8_general_ci
和 utf8_unicode_ci
排序规则之间的差异。如果在对字符进行排序和排序时存在“组合重音”等需要特别注意的情况,那么utf8_unicode_ci
可能是首选。否则,请坚持使用更简单的 utf8_general_ci
。如果您可以向我指出一个讨论“如何订购印地语(等)单词”的网页(英文),那么我也许可以提供帮助。我什至可能会学到一些东西放入 my blog on charsets and collations .
关于mysql - 将印度语言数据从 SQL Server 迁移到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29405625/