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
不相同?
。utf8_*_ci
是一組特定于語言的規則,但另有說法unicode_ci
。一些特殊情況:?
,?
,ch
,ll
utf8_unicode_ci
遵循舊的Unicode標準進行比較。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
提交
取消