为了账号安全,请及时绑定邮箱和手机立即绑定

UTF-8:一般?滨?Unicode的?

UTF-8:一般?滨?Unicode的?

HUH函数 2019-08-09 15:17:40
UTF-8:一般?滨?Unicode的?我试图找出我应该用于各种类型数据的排序规则。我将存储的100%内容是用户提交的。我的理解是我应该使用UTF-8通用CI(Case-Insensitive)而不是UTF-8 Binary。但是,我无法找到UTF-8 General CI和UTF-8 Unicode CI之间的区别。我应该将用户提交的内容存储在UTF-8 General或UTF-8 Unicode CI列中吗?UTF-8二进制适用于哪种类型的数据?
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

  • utf8_bin盲目地比较这些比特。没有折叠的情况下,没有重点剥离。

  • utf8_general_ci比较一个字节和一个字节。它会进行大小写折叠重音剥离,但没有2个字符的比较:在此排序规则中ij不相同ij

  • utf8_*_ci是一组特定于语言的规则,但另有说法unicode_ci。一些特殊情况:ÇČchll

  • utf8_unicode_ci遵循旧的Unicode标准进行比较。ijij,但是ae!=æ

  • utf8_unicode_520_ci遵循较新的Unicode标准。 ae=æ

有关与各种utf8排序规则相同的详细信息,请参阅排序规则图表

utf8由MySQL定义仅限于1到3字节的utf8代码。这遗漏了表情符号和一些中文。所以utf8mb4如果你想远远超越欧洲,你应该切换到。

utf8mb4在适当的拼写更改后,以上几点适用。前进,utf8mb4并且utf8mb4_unicode_520_ci是首选。

  • utf16和utf32是utf8的变体; 对他们几乎毫无用处。

  • ucs2比“utf8”更接近“Unicode”; 几乎没有用它。


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信