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

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

我试图找出我应该用于各种类型数据的排序规则。我将存储的100%内容是用户提交的。

我的理解是我应该使用UTF-8通用CI(Case-Insensitive)而不是UTF-8 Binary。但是,我无法找到UTF-8 General CI和UTF-8 Unicode CI之间的区别。

  1. 我应该将用户提交的内容存储在UTF-8 General或UTF-8 Unicode CI列中吗?

  2. UTF-8二进制适用于哪种类型的数据?


HUH函数
浏览 470回答 3
3回答

繁华开满天机

utf8_bin盲目地比较这些比特。没有折叠的情况下,没有重点剥离。utf8_general_ci比较一个字节和一个字节。它会进行大小写折叠和重音剥离,但没有2个字符的比较:在此排序规则中ij不相同ij。utf8_*_ci是一组特定于语言的规则,但另有说法unicode_ci。一些特殊情况:Ç,Č,ch,llutf8_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”; 几乎没有用它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL