utf8_unicode_ci與utf8_general_ci的區別

From: http://www.chinaz.com/program/2010/0225/107151.shtmlhtml

當前,utf8_unicode_ci校對規則僅部分支持Unicode校對規則算法。一些字符仍是不能支持。而且,不能徹底支持組合的記號。這主要影響越南和俄羅斯的一些少數民族語言,如:Udmurt 、Tatar、Bashkir和Mari。算法

utf8_unicode_ci的最主要的特點是支持擴展,即當把一個字母看做與其它字母組合相等時。例如,在德語和一些其它語言中‘ß’等於‘ss’。code

utf8_general_ci是一個遺留的 校對規則,不支持擴展。它僅可以在字符之間進行逐個比較。這意味着utf8_general_ci校對規則進行的比較速度很快,可是與使用utf8_unicode_ci的校對規則相比,比較正確性較差)。htm

例如,使用utf8_general_ci和utf8_unicode_ci兩種 校對規則下面的比較相等:排序

Ä = Aci

Ö = Ounicode

Ü = Uget

兩種校對規則之間的區別是,對於utf8_general_ci下面的等式成立:擴展

ß = s語言

可是,對於utf8_unicode_ci下面等式成立:

ß = ss

對於一種語言僅當使用utf8_unicode_ci排序作的很差時,才執行與具體語言相關的utf8字符集 校對規則。例如,對於德語和法語,utf8_unicode_ci工做的很好,所以再也不須要爲這兩種語言建立特殊的utf8校對規則。

utf8_general_ci也適用與德語和法語,除了‘ß’等於‘s’,而不是‘ss’以外。若是你的應用可以接受這些,那麼應該使用utf8_general_ci,由於它速度快。不然,使用utf8_unicode_ci,由於它比較準確。

相關文章
相關標籤/搜索