电子邮件领域的最佳字符集是什么?

时间:2012-06-25 18:38:09

标签: mysql

  • 二进制
  • utf8_bin
  • utf8_unicode_ci
  • utf8_general_ci

哪一个最适合在MySql数据库中存储唯一的电子邮件?

注意:该电子邮件字段将用于用户登录。

1 个答案:

答案 0 :(得分:8)

电子邮件地址是一段文字。因此,不要使用二进制,请使用文字。

Utf8 似乎是一个不错的选择。我不确定电子邮件地址支持哪些字符,但可以预期将来会有越来越多的unicode字符。特别是如果你在数据库的其他地方使用utf8,你不必从一个编码切换到另一个编码,只需使用utf8即可。

至于在 utf8_bin utf8_unicode_ci utf8_general_ci 之间进行选择,区别仅在于整理。这意味着在比较字符串时会有所不同。

现在,您必须在允许的内容和正常内容之间进行选择。通常,电子邮件地址不区分大小写,但它们可能区分大小写。

因此,如果您在电子邮件列中使用唯一索引,并且希望允许电子邮件地址仅在大小写上有所不同,则应使用 utf8_bin ,因为以_ci结尾的归类意味着“大小写”不敏感的”。

如果您使用唯一索引并希望避免仅在大小写方面存在差异的电子邮件,请使用 utf8_unicode_ci

话虽如此,我使用 utf8_unicode_ci 。我希望数据库能够将johndoe@email.com和JohnDoe@email.com识别为同一地址。它比允许具有相同字符和不同大小写的地址的可能性更有用。