天天看點

字元集和整理

之前一直在做英文中文論壇,最近公司業務發展我延伸架設了西班牙語和法語論壇。西班牙語、法語、意大利語、葡語、都屬于拉丁語系。差别還是很大的,資料庫字元格式當然也做了相應的調整,頁面的字元編碼也進行了調整。系統前背景編碼格外花了點時間進行了全面的調整,也積累了對拉丁語處理的經驗。重溫一下資料庫字元,一個不太起眼又非常重要的内容。中文論壇你要近可能的選擇比較大的字庫,這個玩家送出韓語日語,拉丁語言以展現玩家的實力,呵呵。 字元集和整理

整理 描述

armscii8 (ARMSCII-8 Armenian)亞美尼亞語, 二進制

   armscii8_general_ci 亞美尼亞語, 不區分大小寫

ascii (US ASCII)西歐 (多語言), 二進制

   ascii_general_ci 西歐 (多語言), 不區分大小寫

big5 (Big5 Traditional Chinese)繁體中文, 二進制

   big5_chinese_ci 繁體中文, 不區分大小寫

binary (Binary pseudo charset)二進制

cp1250 (Windows Central European)中歐 (多語言), 二進制

   cp1250_croatian_ci 克羅地亞語, 不區分大小寫

   cp1250_czech_cs 捷克語, 區分大小寫

   cp1250_general_ci 中歐 (多語言), 不區分大小寫

cp1251 (Windows Cyrillic)西裡爾語 (多語言), 二進制

   cp1251_bulgarian_ci 保加利亞語, 不區分大小寫

   cp1251_general_ci 西裡爾語 (多語言), 不區分大小寫

   cp1251_general_cs 西裡爾語 (多語言), 區分大小寫

   cp1251_ukrainian_ci 烏克蘭語, 不區分大小寫

cp1256 (Windows Arabic)阿拉伯語, 二進制

   cp1256_general_ci 阿拉伯語, 不區分大小寫

cp1257 (Windows Baltic)巴拉克語 (多語言), 二進制

   cp1257_general_ci 巴拉克語 (多語言), 不區分大小寫

   cp1257_lithuanian_ci 立陶宛語, 不區分大小寫

cp850 (DOS West European)西歐 (多語言), 二進制

   cp850_general_ci 西歐 (多語言), 不區分大小寫

cp852 (DOS Central European)中歐 (多語言), 二進制

   cp852_general_ci 中歐 (多語言), 不區分大小寫

cp866 (DOS Russian)俄語, 二進制

   cp866_general_ci 俄語, 不區分大小寫

cp932 (SJIS for Windows Japanese)日語, 二進制

   cp932_japanese_ci 日語, 不區分大小寫

dec8 (DEC West European)西歐 (多語言), 二進制

   dec8_swedish_ci 瑞典語, 不區分大小寫

eucjpms (UJIS for Windows Japanese)日語, 二進制

   eucjpms_japanese_ci 日語, 不區分大小寫

euckr (EUC-KR Korean)北韓語, 二進制

   euckr_korean_ci 北韓語, 不區分大小寫

gb2312 (GB2312 Simplified Chinese)簡體中文, 二進制

   gb2312_chinese_ci 簡體中文, 不區分大小寫

gbk (GBK Simplified Chinese)簡體中文, 二進制

   gbk_chinese_ci 簡體中文, 不區分大小寫

geostd8 (GEOSTD8 Georgian)喬治亞語, 二進制

   geostd8_general_ci 喬治亞語, 不區分大小寫

greek (ISO 8859-7 Greek)希臘語, 二進制

   greek_general_ci 希臘語, 不區分大小寫

hebrew (ISO 8859-8 Hebrew)希伯來語, 二進制

   hebrew_general_ci 希伯來語, 不區分大小寫

hp8 (HP West European)西歐 (多語言), 二進制

   hp8_english_ci 英語, 不區分大小寫

keybcs2 (DOS Kamenicky Czech-Slovak)捷克斯洛伐克語, 二進制

   keybcs2_general_ci 捷克斯洛伐克語, 不區分大小寫

koi8r (KOI8-R Relcom Russian)俄語, 二進制

   koi8r_general_ci 俄語, 不區分大小寫

koi8u (KOI8-U Ukrainian)烏克蘭語, 二進制

   koi8u_general_ci 烏克蘭語, 不區分大小寫

latin1 (cp1252 West European)西歐 (多語言), 二進制

   latin1_danish_ci 丹麥語, 不區分大小寫

   latin1_general_ci 西歐 (多語言), 不區分大小寫

   latin1_general_cs 西歐 (多語言), 區分大小寫

   latin1_german1_ci 德語 (字典), 不區分大小寫

   latin1_german2_ci 德語 (電話本), 不區分大小寫

   latin1_spanish_ci 西班牙語, 不區分大小寫

   latin1_swedish_ci 瑞典語, 不區分大小寫

latin2 (ISO 8859-2 Central European)中歐 (多語言), 二進制

   latin2_croatian_ci 克羅地亞語, 不區分大小寫

   latin2_czech_cs 捷克語, 區分大小寫

   latin2_general_ci 中歐 (多語言), 不區分大小寫

   latin2_hungarian_ci 匈牙利語, 不區分大小寫

latin5 (ISO 8859-9 Turkish)土耳其語, 二進制

   latin5_turkish_ci 土耳其語, 不區分大小寫

latin7 (ISO 8859-13 Baltic)巴拉克語 (多語言), 二進制

   latin7_estonian_cs 愛沙尼亞語, 區分大小寫

   latin7_general_ci 巴拉克語 (多語言), 不區分大小寫

   latin7_general_cs 巴拉克語 (多語言), 區分大小寫

macce (Mac Central European)中歐 (多語言), 二進制

   macce_general_ci 中歐 (多語言), 不區分大小寫

   macroman (Mac West European)

   macroman_bin 西歐 (多語言), 二進制

   macroman_general_ci 西歐 (多語言), 不區分大小寫

sjis (Shift-JIS Japanese)日語, 二進制

   sjis_japanese_ci 日語, 不區分大小寫

swe7 (7bit Swedish)瑞典語, 二進制

   swe7_swedish_ci 瑞典語, 不區分大小寫

tis620 (TIS620 Thai)泰語, 二進制

   tis620_thai_ci 泰語, 不區分大小寫

ucs2 (UCS-2 Unicode)多語言), 二進制

   ucs2_czech_ci 捷克語, 不區分大小寫

   ucs2_danish_ci 丹麥語, 不區分大小寫

   ucs2_esperanto_ci Esperanto, 不區分大小寫

   ucs2_estonian_ci 愛沙尼亞語, 不區分大小寫

   ucs2_general_ci Unicode (多語言), 不區分大小寫

   ucs2_hungarian_ci 匈牙利語, 不區分大小寫

   ucs2_icelandic_ci 冰島語, 不區分大小寫

   ucs2_latvian_ci 拉脫維亞語, 不區分大小寫

   ucs2_lithuanian_ci 立陶宛語, 不區分大小寫

   ucs2_persian_ci 波斯語, 不區分大小寫

   ucs2_polish_ci 波蘭語, 不區分大小寫

   ucs2_roman_ci 西歐, 不區分大小寫

   ucs2_romanian_ci 羅馬尼亞語, 不區分大小寫

   ucs2_slovak_ci 斯洛伐克語, 不區分大小寫

   ucs2_slovenian_ci 斯洛文尼亞語, 不區分大小寫

   ucs2_spanish2_ci 傳統西班牙語, 不區分大小寫

   ucs2_spanish_ci 西班牙語, 不區分大小寫

   ucs2_swedish_ci 瑞典語, 不區分大小寫

   ucs2_turkish_ci 土耳其語, 不區分大小寫

   ucs2_unicode_ci Unicode (多語言), 不區分大小寫

ujis (EUC-JP Japanese)日語, 二進制

   ujis_japanese_ci 日語, 不區分大小寫

utf8 (UTF-8 Unicode)多語言), 二進制

   utf8_czech_ci 捷克語, 不區分大小寫

   utf8_danish_ci 丹麥語, 不區分大小寫

   utf8_esperanto_ci Esperanto, 不區分大小寫

   utf8_estonian_ci 愛沙尼亞語, 不區分大小寫

   utf8_general_ci Unicode (多語言), 不區分大小寫

   utf8_hungarian_ci 匈牙利語, 不區分大小寫

   utf8_icelandic_ci 冰島語, 不區分大小寫

utf8_latvian_ci 拉脫維亞語, 不區分大小寫

   utf8_lithuanian_ci 立陶宛語, 不區分大小寫

utf8_persian_ci 波斯語, 不區分大小寫

   utf8_polish_ci 波蘭語, 不區分大小寫

   utf8_roman_ci 西歐, 不區分大小寫

   utf8_romanian_ci 羅馬尼亞語, 不區分大小寫

   utf8_slovak_ci 斯洛伐克語, 不區分大小寫

   utf8_slovenian_ci 斯洛文尼亞語, 不區分大小寫

   utf8_spanish2_ci 傳統西班牙語, 不區分大小寫

   utf8_spanish_ci 西班牙語, 不區分大小寫

   utf8_swedish_ci 瑞典語, 不區分大小寫

   utf8_turkish_ci 土耳其語, 不區分大小寫

   utf8_unicode_ci Unicode (多語言), 不區分大小寫

Open new phpMyAdmin window

其中這三個都是多語言

utf8_bin Unicode (多語言), 二進制

utf8_unicode_ci Unicode (多語言), 不區分大小寫

utf8_general_ci Unicode (多語言), 不區分大小寫

   utf8_bin Unicode (

   ujis_bin

   ucs2_bin Unicode (

   tis620_bin

   swe7_bin

   sjis_bin

   macce_bin

   latin7_bin

   latin5_bin

   latin2_bin

   latin1_bin

   koi8u_bin

   koi8r_bin

   keybcs2_bin

   hp8_bin

   hebrew_bin

   greek_bin

   geostd8_bin

   gbk_bin

   gb2312_bin

   euckr_bin

   eucjpms_bin

   dec8_bin

   cp932_bin

   cp866_bin

   cp852_bin

   cp850_bin

   cp1257_bin

   cp1256_bin

   cp1251_bin

   cp1250_bin

   binary

   big5_bin

   ascii_bin

   armscii8_bin MySQL中的字元集和校對 MySQL伺服器能夠支援多種字元集。可以使用SHOW CHARACTER SET語句列出可用的字元集:

mysql> SHOW CHARACTER SET;      
+----------+-----------------------------+---------------------+--------+      
| Charset | Description                 | Default collation   | Maxlen |      
+----------+-----------------------------+---------------------+--------+      
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |      
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |      
| cp850    | DOS West European           | cp850_general_ci    |      1 |      
| hp8      | HP West European            | hp8_english_ci      |      1 |      
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |      
| latin1   | cp1252     West European    | latin1_swedish_ci   |      1 |      
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |      
| swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |      
| ascii    | US ASCII                    | ascii_general_ci    |      1 |      
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |      
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |      
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |      
| tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |      
| euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |      
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |      
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |      
| greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |      
| cp1250   | Windows Central European    | cp1250_general_ci   |      1 |      
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |      
Unicode字元集      

MySQL有兩種Unicode字元集。你能夠使用這些字元集儲存大約650種語言的文本。 ·         ucs2 (UCS-2 Unicode)校對規則:

·                mysql> SHOW COLLATION LIKE 'ucs2%';      

·                utf8 (UTF-8 Unicode)校對規則:

·                       
·                mysql> SHOW COLLATION LIKE 'utf8%';      

utf8_unicode_ci校對規則是根據Unicode校對規則算法(UCA)執行的, 校對規則描述見 http://www.unicode.org/reports/tr10/。此校對規則使用UCA 4.0.0版本砝碼鍵: http://www.unicode.org/Public/UC一個/4.0.0/一個llkeys-4.0.0.txt。(以下讨論使用utf8_unicode_ci,但同樣适合ucs2_unicode_ci。) 目前,utf8_unicode_ci校對規則僅部分支援Unicode校對規則算法。一些字元還是不能支援。并且,不能完全支援組合的記号。這主要影響越南和俄羅斯的一些少數民族語言,如:Udmurt 、Tatar、Bashkir和Mari。 utf8_unicode_ci的最主要的特色是支援擴充,即當把一個字母看作與其它字母組合相等時。例如,在德語和一些其它語言中‘ß’等于‘ss’。 utf8_general_ci是一個遺留的 校對規則,不支援擴充。它僅能夠在字元之間進行逐個比較。這意味着utf8_general_ci校對規則進行的比較速度很快,但是與使用utf8_unicode_ci的校對規則相比,比較正确性較差)。 例如,使用utf8_general_ci和utf8_unicode_ci兩種 校對規則下面的比較相等:

Ä = A      
Ö = O      
Ü = U      

兩種校對規則之間的差別是,對于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,因為它比較準确。

utf8_swedish_ci,與其它語言相關的utf8的校對規則相似,來源于utf8_unicode_ci,使用額外的語言規則。例如,在瑞典語中,以下的關系式成立,它在德語和法語中不成立:

Ü = Y < Ö      

utf8_spanish_ci和utf8_spanish2_ci校對規則分别适用于現代和古典西班牙語。在兩種校對規則中,ñ’(n-發音符)是‘n’和‘o’之間的間隔字母。另外,對于古典西班牙語,‘ch’是‘c’和d之間的間隔字母,并且‘ll’是‘l’和‘m’之間的間隔字母。

轉載于:https://blog.51cto.com/haikong808/381660