正在将印度语言数据从 SQL 服务器迁移到 MySQL
Migrating Indian language data from SQL Server to MySQL
我正在将数据从 SQL 服务器数据库迁移到 MySQL 数据库。
很少有表格包含英语以外语言的数据。数据主要使用流行的印度语言,如印地语、马拉地语等
我检查了那些表,发现包含其他语言数据的字段被声明为:
Description nvarchar
对于这些类型的字段,我在 MySQL 中创建了如下字段
Description longtext (with utf8_general_ci collation)
我是不是遗漏了什么,这些设置应该有效吗?
视情况而定。如果你能得到几个印度字符的十六进制,我们就可以验证它是否是用 utf8 编码的。 (在utf8中,一个印度character的hex一般是3bytesE0 xx yy
。)假设是utf8,那么声明table/column 为 CHARACTER SET utf8
会让它很容易接受字符。您还必须声明您的 client 正在使用 utf8 进行通话。什么客户?
我建议不要超过 MEDIUMTEXT
(允许 16M 字节,可能绰绰有余)或 TEXT
(64KB)而不是 LONGTEXT
(4GB 限制)。
我不熟悉 utf8_general_ci
和 utf8_unicode_ci
collations 在印度字符集方面的区别。如果有"combining accents"等在对字符进行排序排序时需要特别注意的地方,那么可能优先选择utf8_unicode_ci
。否则,坚持使用更简单的 utf8_general_ci
。如果您可以指点我讨论 "how to order Hindi (etc) words" 的网页(英文),那么我可能会提供帮助。我什至可能学到一些东西放在 my blog on charsets and collations.
我正在将数据从 SQL 服务器数据库迁移到 MySQL 数据库。
很少有表格包含英语以外语言的数据。数据主要使用流行的印度语言,如印地语、马拉地语等
我检查了那些表,发现包含其他语言数据的字段被声明为:
Description nvarchar
对于这些类型的字段,我在 MySQL 中创建了如下字段
Description longtext (with utf8_general_ci collation)
我是不是遗漏了什么,这些设置应该有效吗?
视情况而定。如果你能得到几个印度字符的十六进制,我们就可以验证它是否是用 utf8 编码的。 (在utf8中,一个印度character的hex一般是3bytesE0 xx yy
。)假设是utf8,那么声明table/column 为 CHARACTER SET utf8
会让它很容易接受字符。您还必须声明您的 client 正在使用 utf8 进行通话。什么客户?
我建议不要超过 MEDIUMTEXT
(允许 16M 字节,可能绰绰有余)或 TEXT
(64KB)而不是 LONGTEXT
(4GB 限制)。
我不熟悉 utf8_general_ci
和 utf8_unicode_ci
collations 在印度字符集方面的区别。如果有"combining accents"等在对字符进行排序排序时需要特别注意的地方,那么可能优先选择utf8_unicode_ci
。否则,坚持使用更简单的 utf8_general_ci
。如果您可以指点我讨论 "how to order Hindi (etc) words" 的网页(英文),那么我可能会提供帮助。我什至可能学到一些东西放在 my blog on charsets and collations.