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
。一些特殊情况:Ç
,Č
,ch
,ll
utf8_unicode_ci
遵循旧的Unicode标准进行比较。ij
=ij
,但是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”; 几乎没有用它。
添加回答
举报
0/150
提交
取消