1、在計(jì)算機(jī)內(nèi)部,所有的信息最終都被表示為一個(gè)二進(jìn)制的字符串。每一個(gè)二級(jí)制位(bit)有0和1兩種狀態(tài),因此8個(gè)二進(jìn)制位就可以組合出2的8次方,即256種狀態(tài)。8個(gè)二進(jìn)制位被稱為一個(gè)字節(jié)(byte).也就是說一個(gè)字節(jié)有256中不同的狀態(tài),每個(gè)狀態(tài)對(duì)應(yīng)一個(gè)符號(hào),也就是256種符號(hào),從00000000到11111111;
2、ASCII碼有128個(gè)字符的編碼,2的7次方,即128種字符符號(hào),占用了一個(gè)字節(jié)的后面7位,最前面統(tǒng)一為0;
3、UTF-8是Unicode的實(shí)現(xiàn)方式,其他方式有UTF-16,UTF-32等
UTF-8編碼啊規(guī)則:
3.1、單字節(jié)符號(hào),字節(jié)第一位設(shè)為0,后面7位為這個(gè)符號(hào)的unicode碼。因此英文字母的UTF-8編碼和ASCII碼是相同的;
3.2、n字節(jié)符號(hào)(n>1),用n*8個(gè)二進(jìn)制位表示,從左往右,第一個(gè)字節(jié)的8個(gè)二進(jìn)制位前n位都設(shè)為1,第n+1位設(shè)為0,后面字節(jié)的8個(gè)二進(jìn)制位的前兩位一律設(shè)為10,剩下的二進(jìn)制位,全部為這個(gè)符號(hào)的unicode碼,對(duì)出的位都補(bǔ)0;
4、Unicode規(guī)范中定義,每一個(gè)文件的最前面分別加入一個(gè)表示編碼順序的字符,這個(gè)字符的名字叫做"零寬度非換行空格"(ZERO WIDTH NO-BREAK SPACE),用FEFF表示。這正好是兩個(gè)字節(jié),而且FF比FE大1。
如果一個(gè)文本文件的頭兩個(gè)字節(jié)是FE FF,就表示該文件采用大頭方式;如果頭兩個(gè)字節(jié)是FF FE,就表示該文件采用小頭方式。
5、ANSI是默認(rèn)的編碼方式。對(duì)于英文文件是ASCII編碼,對(duì)于簡(jiǎn)體中文文件是GB2312編碼(只針對(duì)Windows簡(jiǎn)體中文版,如果是繁體中文版會(huì)采用Big5碼)
6、UTF-8:編碼是六個(gè)字節(jié)"EF BB BF E4 B8 A5",前三個(gè)字節(jié)"EF BB BF"表示這是UTF-8編碼,后三個(gè)"E4B8A5"就是"嚴(yán)"的具體編碼,它的存儲(chǔ)順序與編碼順序是一致的