編程過(guò)程中經(jīng)常會(huì)遇到各種編碼方式锨侯,亂碼的問(wèn)題是最讓程序員頭疼的問(wèn)題斤斧。我們經(jīng)常會(huì)遇到哪些編碼方式呢勺美?這些編碼方式你到底懂多少递胧?
1. Unicode
Unicode(統(tǒng)一碼、萬(wàn)國(guó)碼赡茸、單一碼)是計(jì)算機(jī)科學(xué)領(lǐng)域里的一項(xiàng)業(yè)界標(biāo)準(zhǔn),包括字符集缎脾、編碼方案等。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的占卧,它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼遗菠,以滿(mǎn)足跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換华蜒、處理的要求舷蒲。
2. UTF-8
UTF-8(8-bit Unicode Transformation Format)是一種針對(duì)Unicode的可變長(zhǎng)度字符編碼,又稱(chēng)萬(wàn)國(guó)碼友多。由Ken Thompson于1992年創(chuàng)建∩剑現(xiàn)在已經(jīng)標(biāo)準(zhǔn)化為RFC 3629。UTF-8用1到4個(gè)字節(jié)編碼Unicode字符域滥。用在網(wǎng)頁(yè)上可以統(tǒng)一頁(yè)面顯示中文簡(jiǎn)體繁體及其它語(yǔ)言(如英文纵柿,日文蜈抓,韓文)。
3. GB2312
GB2312編碼適用于漢字處理昂儒、漢字通信等系統(tǒng)之間的信息交換沟使,通行于中國(guó)大陸;新加坡等地也采用此編碼渊跋。中國(guó)大陸幾乎所有的中文系統(tǒng)和國(guó)際化的軟件都支持GB 2312腊嗡。
基本集共收入漢字6763個(gè)和非漢字圖形字符682個(gè)。整個(gè)字符集分成94個(gè)區(qū)拾酝,每區(qū)有94個(gè)位燕少。每個(gè)區(qū)位上只有一個(gè)字符,因此可用所在的區(qū)和位來(lái)對(duì)漢字進(jìn)行編碼蒿囤,稱(chēng)為區(qū)位碼客们。
4. ANSI
ANSI是一種字符代碼钦购,為使計(jì)算機(jī)支持更多語(yǔ)言叙淌,通常使用 0x00~0x7f 范圍的1 個(gè)字節(jié)來(lái)表示 1 個(gè)英文字符。超出此范圍的使用0x80~0xFFFF來(lái)編碼淑际,即擴(kuò)展的ASCII編碼脸侥。
為使計(jì)算機(jī)支持更多語(yǔ)言建邓,通常使用 0x80~0xFFFF 范圍的 2 個(gè)字節(jié)來(lái)表示 1 個(gè)字符。比如:漢字 '中' 在A(yíng)NSI編碼中文操作系統(tǒng)中睁枕,使用 [0xD6,0xD0] 這兩個(gè)字節(jié)存儲(chǔ)官边。
5. ASCII
ASCII(American Standard Code for Information Interchange,美國(guó)信息交換標(biāo)準(zhǔn)代碼)是基于拉丁字母的一套電腦編碼系統(tǒng)譬重,主要用于顯示現(xiàn)代英語(yǔ)和其他西歐語(yǔ)言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng)罐氨,并等同于國(guó)際標(biāo)準(zhǔn)ISO/IEC 646臀规。
ASCII 碼使用指定的7 位或8 位二進(jìn)制數(shù)組合來(lái)表示128 或256 種可能的字符。標(biāo)準(zhǔn)ASCII 碼也叫基礎(chǔ)ASCII碼栅隐,使用7 位二進(jìn)制數(shù)(剩下的1位二進(jìn)制為0)來(lái)表示所有的大寫(xiě)和小寫(xiě)字母塔嬉,數(shù)字0 到9、標(biāo)點(diǎn)符號(hào)租悄, 以及在美式英語(yǔ)中使用的特殊控制字符谨究。
6. GBK
GBK全稱(chēng)《漢字內(nèi)碼擴(kuò)展規(guī)范》(GBK即“國(guó)標(biāo)”、“擴(kuò)展”漢語(yǔ)拼音的第一個(gè)字母泣棋,英文名稱(chēng):Chinese Internal Code Specification)
GBK編碼胶哲,是在GB2312-80標(biāo)準(zhǔn)基礎(chǔ)上的內(nèi)碼擴(kuò)展規(guī)范,使用了雙字節(jié)編碼方案潭辈,其編碼范圍從8140至FEFE(剔除xx7F)鸯屿,共23940個(gè)碼位澈吨,共收錄了21003個(gè)漢字。