編程過(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)制編碼,以滿足跨語(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)建?,F(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è)字符。比如:漢字 '中' 在ANSI編碼中文操作系統(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è)漢字。