【问题标题】:Migrating Indian language data from SQL Server to MySQL将印度语言数据从 SQL Server 迁移到 MySQL
【发布时间】:2015-06-06 23:24:55
【问题描述】:
我正在将数据从 SQL Server 数据库迁移到 MySQL 数据库。
很少有表格包含英语以外的其他语言的数据。数据主要采用印度流行语言,如印地语、马拉地语等。
我检查了那些表,发现包含其他语言数据的字段被声明为:
描述 nvarchar
对于这类字段,我在 MySQL 中创建了如下字段
描述长文本(使用 utf8_general_ci 排序规则)
我错过了什么,所以这些设置应该有效吗?
【问题讨论】:
标签:
mysql
sql-server
utf-8
migration
database-migration
【解决方案1】:
这取决于。如果你能得到几个印度字符的 HEX,我们可以验证它是否是 utf8 编码的。 (在utf8中,一个印度字符的十六进制一般是3个字节E0 xx yy。)假设是utf8,那么声明表/列为CHARACTER SET utf8会让它轻松接受字符。您还必须声明您的 client 正在使用 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。