utf8_unicode_ci與utf8_general_ci的區(qū)別

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

當前,utf8_unicode_ci校對規(guī)則僅部分支持Unicode校對規(guī)則算法。一些字符還是不能支持。并且,不能完全支持組合的記號。這主要影響越南和俄羅斯的一些少數(shù)民族語言,如:Udmurt 、Tatar、Bashkir和Mari。

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

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

例如,使用utf8_general_ci和utf8_unicode_ci兩種 校對規(guī)則下面的比較相等:

? = A

? = O

ü = U

兩種校對規(guī)則之間的區(qū)別是,對于utf8_general_ci下面的等式成立:

? = s

但是,對于utf8_unicode_ci下面等式成立:

? = ss

對于一種語言僅當使用utf8_unicode_ci排序做的不好時,才執(zhí)行與具體語言相關的utf8字符集 校對規(guī)則。例如,對于德語和法語,utf8_unicode_ci工作的很好,因此不再需要為這兩種語言創(chuàng)建特殊的utf8校對規(guī)則。

utf8_general_ci也適用與德語和法語,除了‘?’等于‘s’,而不是‘ss’之外。如果你的應用能夠接受這些,那么應該使用utf8_general_ci,因為它速度快。否則,使用utf8_unicode_ci,因為它比較準確。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容