電腦中一個(gè)字符大都用八位數(shù)的二進(jìn)制數(shù)字表示,標(biāo)準(zhǔn)的ANSI編碼規(guī)范規(guī)定0~127總共128個(gè)數(shù)字代表信息(字母,數(shù)字,標(biāo)點(diǎn),控制碼,空格等),剩下沒用到的128個(gè)編碼沒用做規(guī)定,不同國家地區(qū)制定了不同的標(biāo)準(zhǔn),由此產(chǎn)生了GB2312,BIG5以及JIS等各自的編碼標(biāo)準(zhǔn)。這些使用 2 個(gè)字節(jié)(0x80~0xFF范圍內(nèi))來代表一個(gè)字符的各種漢字延伸編碼方式,稱為 ANSI 編碼。在簡(jiǎn)體中文系統(tǒng)下,ANSI 編碼代表 GB2312 編碼,在日文操作系統(tǒng)下,ANSI 編碼代表 JIS 編碼。不同 ANSI 編碼之間互不兼容,當(dāng)信息在國際間交流時(shí),無法將屬于兩種語言的文字,存儲(chǔ)在同一段 ANSI 編碼的文本中。
ISO-8859-1(2,3...)是歐美以及拉丁地區(qū)的編碼方式,通過使用剩下的128位來擴(kuò)充自己國家語言的編碼
事實(shí)證明,對(duì)可以用ASCII表示的字符使用UNICODE并不高效,因?yàn)閁NICODE比ASCII占用大一倍的空間
我們通過UrlEncode函數(shù)即可得到漢字的編碼,比如對(duì)ANSI編碼的asp代碼,和UTF-8編碼的asp代碼執(zhí)行urlecode得到的結(jié)果就不一樣。
下面再看看ansi,unicode,unicode big endian,utf8編碼的文件用十六進(jìn)制打開的樣子:同樣的文本“a花心”
可以看出第一種編碼方式全部都是文本信息,后面三種都有頭部表示自己的信息,所以ANSI中也沒有用FE FF來編碼的漢字(為了不沖突)UNICODE中對(duì)字母的編碼也是采用了2個(gè)字符,增加了冗余。我們比較ANSI和UTF-8編碼的格式,可以看到正好就是我們urlencode后的結(jié)果
聯(lián)系客服