1

我正在创建一个网站,该网站将存储几种不同语言的教程视频。英语将是主要受众,但我希望在用户名/密码中使用法语口音以及瑞典/挪威口音/字符。

教程视频的语言也将提供中文(粤语/普通话)、乌尔都语/印地语、波斯语/达里语和阿拉伯语。虽然我很确定最后几个使用标准的 qwerty 键盘进行网络,特别是在线注册 - 我知道欧洲键盘各不相同,并且有几种重音和连字。

我想知道就 mysql 在存储用户名和电子邮件地址方面而言,哪种排序规则最适合支持最可能的条目?我知道我可能无法涵盖所有​​内容,但我想尽可能多地做。

我读过 uft8_general_ci 更好,但如果我想支持那些斯堪的纳维亚字符,它与 latin_1 swedish_ci 有何不同?

编辑:user_id 字段和电子邮件字段将是唯一的 - 所以 fred@home.com 与 fréd@home.com 不同

4

2 回答 2

1

排序规则在这里与存储数据无关。它只指定比较和排序的规则。您需要的是正确的字符集,应该是utf8. 如果您的 MySQL 版本 >= 5.5,您甚至应该使用utf8mb4or utf16,这两者都涵盖了整个 Unicode(MySQLutf8是真正 UTF-8 的有限子集,仅涵盖 BMP)。latin1字符集将您限制为其中定义的 256 个字符。

如果您想避免相似的条目被视为同一事物,请使用适当的_bin排序规则。

于 2013-09-12T15:08:36.290 回答
0

我不会使用utf8_general_ciutf8_unicode_ci而是使用。它对排序和比较有更好的支持,您可以派生出utf8_unicode_ci多种其他排序规则类型 - 例如utf8_swedish_ci获得正确的瑞典排序和比较。

缺点是它比 慢一些utf8_general_ci,但是在 IMO 中,您获得的收益要多得多。

于 2013-09-12T14:31:34.963 回答