福利视频一区二区_亚洲精品自产拍_一区二区日韩av_av在线精品

ASCII,Unicode和UTF-8簡(jiǎn)述
admin
2015-04-18 19:23:18
108

字符編碼是計(jì)算機(jī)技術(shù)的基石,想要熟練使用計(jì)算機(jī),就必須懂得一點(diǎn)字符編碼的知識(shí)。

1. ASCII碼

我 們知道,在計(jì)算機(jī)內(nèi)部,所有的信息最終都表示為一個(gè)二進(jìn)制的字符串。每一個(gè)二進(jìn)制位(bit)有0和1兩種狀態(tài),因此八個(gè)二進(jìn)制位就可以組合出256種狀 態(tài),這被稱為一個(gè)字節(jié)(byte)。也就是說(shuō),一個(gè)字節(jié)一共可以用來(lái)表示256種不同的狀態(tài),每一個(gè)狀態(tài)對(duì)應(yīng)一個(gè)符號(hào),就是256個(gè)符號(hào),從 0000000到11111111。

上個(gè)世紀(jì)60年代,美國(guó)制定了一套字符編碼,對(duì)英語(yǔ)字符與二進(jìn)制位之間的關(guān)系,做了統(tǒng)一規(guī)定。這被稱為ASCII碼,一直沿用至今。

ASCII碼一共規(guī)定了128個(gè)字符的編碼,比如空格“SPACE”是32(二進(jìn)制00100000),大寫(xiě)的字母A是65(二進(jìn)制01000001)。這128個(gè)符號(hào)(包括32個(gè)不能打印出來(lái)的控制符號(hào)),只占用了一個(gè)字節(jié)的后面7位,最前面的1位統(tǒng)一規(guī)定為0。

2、非ASCII編碼

英 語(yǔ)用128個(gè)符號(hào)編碼就夠了,但是用來(lái)表示其他語(yǔ)言,128個(gè)符號(hào)是不夠的。比如,在法語(yǔ)中,字母上方有注音符號(hào),它就無(wú)法用ASCII碼表示。于是,一 些歐洲國(guó)家就決定,利用字節(jié)中閑置的最高位編入新的符號(hào)。比如,法語(yǔ)中的é的編碼為130(二進(jìn)制10000010)。這樣一來(lái),這些歐洲國(guó)家使用的編碼 體系,可以表示最多256個(gè)符號(hào)。

但 是,這里又出現(xiàn)了新的問(wèn)題。不同的國(guó)家有不同的字母,因此,哪怕它們都使用256個(gè)符號(hào)的編碼方式,代表的字母卻不一樣。比如,130在法語(yǔ)編碼中代表了 é,在希伯來(lái)語(yǔ)編碼中卻代表了字母Gimel (?),在俄語(yǔ)編碼中又會(huì)代表另一個(gè)符號(hào)。但是不管怎樣,所有這些編碼方式中,0—127表示的符號(hào)是一樣的,不一樣的只是128—255的這一段。

至 于亞洲國(guó)家的文字,使用的符號(hào)就更多了,漢字就多達(dá)10萬(wàn)左右。一個(gè)字節(jié)只能表示256種符號(hào),肯定是不夠的,就必須使用多個(gè)字節(jié)表達(dá)一個(gè)符號(hào)。比如,簡(jiǎn) 體中文常見(jiàn)的編碼方式是GB2312,使用兩個(gè)字節(jié)表示一個(gè)漢字,所以理論上最多可以表示256x256=65536個(gè)符號(hào)。

中文編碼的問(wèn)題需要專文討論,這篇筆記不涉及。這里只指出,雖然都是用多個(gè)字節(jié)表示一個(gè)符號(hào),但是GB類的漢字編碼與后文的Unicode和UTF-8是毫無(wú)關(guān)系的。

3.Unicode

正如上一節(jié)所說(shuō),世界上存在著多種編碼方式,同一個(gè)二進(jìn)制數(shù)字可以被解釋成不同的符號(hào)。因此,要想打開(kāi)一個(gè)文本文件,就必須知道它的編碼方式,否則用錯(cuò)誤的編碼方式解讀,就會(huì)出現(xiàn)亂碼。為什么電子郵件常常出現(xiàn)亂碼?就是因?yàn)榘l(fā)信人和收信人使用的編碼方式不一樣。

可以想象,如果有一種編碼,將世界上所有的符號(hào)都納入其中。每一個(gè)符號(hào)都給予一個(gè)獨(dú)一無(wú)二的編碼,那么亂碼問(wèn)題就會(huì)消失。這就是Unicode,就像它的名字都表示的,這是一種所有符號(hào)的編碼。

Unicode 當(dāng)然是一個(gè)很大的集合,現(xiàn)在的規(guī)模可以容納100多萬(wàn)個(gè)符號(hào)。每個(gè)符號(hào)的編碼都不一樣,比如,U+0639表示阿拉伯字母Ain,U+0041表示英語(yǔ)的 大寫(xiě)字母A,U+4E25表示漢字“嚴(yán)”。具體的符號(hào)對(duì)應(yīng)表,可以查詢unicode.org,或者專門(mén)的漢字對(duì)應(yīng)表。

4. Unicode的問(wèn)題

需要注意的是,Unicode只是一個(gè)符號(hào)集,它只規(guī)定了符號(hào)的二進(jìn)制代碼,卻沒(méi)有規(guī)定這個(gè)二進(jìn)制代碼應(yīng)該如何存儲(chǔ)。

比如,漢字“嚴(yán)”的unicode是十六進(jìn)制數(shù)4E25,轉(zhuǎn)換成二進(jìn)制數(shù)足足有15位(100111000100101),也就是說(shuō)這個(gè)符號(hào)的表示至少需要2個(gè)字節(jié)。表示其他更大的符號(hào),可能需要3個(gè)字節(jié)或者4個(gè)字節(jié),甚至更多。

這 里就有兩個(gè)嚴(yán)重的問(wèn)題,第一個(gè)問(wèn)題是,如何才能區(qū)別unicode和ascii?計(jì)算機(jī)怎么知道三個(gè)字節(jié)表示一個(gè)符號(hào),而不是分別表示三個(gè)符號(hào)呢?第二個(gè) 問(wèn)題是,我們已經(jīng)知道,英文字母只用一個(gè)字節(jié)表示就夠了,如果unicode統(tǒng)一規(guī)定,每個(gè)符號(hào)用三個(gè)或四個(gè)字節(jié)表示,那么每個(gè)英文字母前都必然有二到三 個(gè)字節(jié)是0,這對(duì)于存儲(chǔ)來(lái)說(shuō)是極大的浪費(fèi),文本文件的大小會(huì)因此大出二三倍,這是無(wú)法接受的。

它們?cè)斐傻慕Y(jié)果是:1)出現(xiàn)了unicode的多種存儲(chǔ)方式,也就是說(shuō)有許多種不同的二進(jìn)制格式,可以用來(lái)表示unicode。2)unicode在很長(zhǎng)一段時(shí)間內(nèi)無(wú)法推廣,直到互聯(lián)網(wǎng)的出現(xiàn)。

5.UTF-8

互聯(lián)網(wǎng)的普及,強(qiáng)烈要求出現(xiàn)一種統(tǒng)一的編碼方式。UTF-8就是在互聯(lián)網(wǎng)上使用最廣的一種unicode的實(shí)現(xiàn)方式。其他實(shí)現(xiàn)方式還包括UTF-16和UTF-32,不過(guò)在互聯(lián)網(wǎng)上基本不用。重復(fù)一遍,這里的關(guān)系是,UTF-8是Unicode的實(shí)現(xiàn)方式之一。

UTF-8最大的一個(gè)特點(diǎn),就是它是一種變長(zhǎng)的編碼方式。它可以使用1~4個(gè)字節(jié)表示一個(gè)符號(hào),根據(jù)不同的符號(hào)而變化字節(jié)長(zhǎng)度。

UTF-8的編碼規(guī)則很簡(jiǎn)單,只有二條:

1)對(duì)于單字節(jié)的符號(hào),字節(jié)的第一位設(shè)為0,后面7位為這個(gè)符號(hào)的unicode碼。因此對(duì)于英語(yǔ)字母,UTF-8編碼和ASCII碼是相同的。

2)對(duì)于n字節(jié)的符號(hào)(n>1),第一個(gè)字節(jié)的前n位都設(shè)為1,第n+1位設(shè)為0,后面字節(jié)的前兩位一律設(shè)為10。剩下的沒(méi)有提及的二進(jìn)制位,全部為這個(gè)符號(hào)的unicode碼。

下表總結(jié)了編碼規(guī)則,字母x表示可用編碼的位。

Unicode符號(hào)范圍 | UTF-8編碼方式
(十六進(jìn)制) | (二進(jìn)制)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

下面,還是以漢字“嚴(yán)”為例,演示如何實(shí)現(xiàn)UTF-8編碼。

已 知“嚴(yán)”的unicode是4E25(100111000100101),根據(jù)上表,可以發(fā)現(xiàn)4E25處在第三行的范圍內(nèi)(0000 0800-0000 FFFF),因此“嚴(yán)”的UTF-8編碼需要三個(gè)字節(jié),即格式是“1110xxxx 10xxxxxx 10xxxxxx”。然后,從“嚴(yán)”的最后一個(gè)二進(jìn)制位開(kāi)始,依次從后向前填入格式中的x,多出的位補(bǔ)0。這樣就得到了,“嚴(yán)”的UTF-8編碼是 “11100100 10111000 10100101”,轉(zhuǎn)換成十六進(jìn)制就是E4B8A5。

6. Unicode與UTF-8之間的轉(zhuǎn)換

通過(guò)上一節(jié)的例子,可以看到“嚴(yán)”的Unicode碼是4E25,UTF-8編碼是E4B8A5,兩者是不一樣的。它們之間的轉(zhuǎn)換可以通過(guò)程序?qū)崿F(xiàn)。

在Windows平臺(tái)下,有一個(gè)最簡(jiǎn)單的轉(zhuǎn)化方法,就是使用內(nèi)置的記事本小程序Notepad.exe。打開(kāi)文件后,點(diǎn)擊“文件”菜單中的“另存為”命令,會(huì)跳出一個(gè)對(duì)話框,在最底部有一個(gè)“編碼”的下拉條。

文章出自:北京網(wǎng)站建設(shè)公司-前潮網(wǎng)絡(luò) http://m.niordsec.com 如轉(zhuǎn)載請(qǐng)注明出處!

相關(guān)推薦
您想要定制網(wǎng)站嗎?
如果您想要走進(jìn)互聯(lián)網(wǎng),并且想找一個(gè)出色的團(tuán)隊(duì),那就趕緊聯(lián)系我們吧~
福利视频一区二区_亚洲精品自产拍_一区二区日韩av_av在线精品
亚洲一区在线看| 国产一区二区三区av电影 | 欧美吻胸吃奶大尺度电影| 亚洲制服av| 欧美综合二区| 欧美成人一区二区| 欧美日韩视频| 国产视频一区欧美| 亚洲国产老妈| 亚洲伊人观看| 快播亚洲色图| 国产精品扒开腿做爽爽爽视频| 国产精品有限公司| 亚洲国产精品va在看黑人| 99亚洲伊人久久精品影院红桃| 亚洲欧美日韩国产成人精品影院| 久久久精品网| 欧美日韩美女一区二区| 国产亚洲免费的视频看| 最新亚洲一区| 欧美影院精品一区| 欧美人与性动交a欧美精品| 国产午夜精品美女视频明星a级| 亚洲精品久久久久中文字幕欢迎你 | 亚洲国产精品久久久久秋霞影院| 亚洲一区二区精品在线| 久久这里有精品15一区二区三区| 欧美日韩在线电影| 精品成人在线视频| 在线视频精品一区| 毛片基地黄久久久久久天堂| 99热这里只有精品8| 午夜精品成人在线视频| 欧美高清在线观看| 国产一区二区三区四区在线观看| 99国产一区二区三精品乱码| 久久手机精品视频| 国产精品v日韩精品| 亚洲国产欧美一区| 久久久久久999| 国产精品久久久久久久久久久久久| 亚洲国产成人porn| 久久精品国产视频| 国产精品一区=区| 日韩一级大片在线| 欧美va亚洲va国产综合| 国产真实乱子伦精品视频| 亚洲系列中文字幕| 欧美日韩国产区| 亚洲国产精品ⅴa在线观看| 欧美在线视频不卡| 国产精品视频yy9099| 一区二区三区视频在线| 欧美国产日韩精品免费观看| 精品电影一区| 欧美在线视频日韩| 国产精品美女久久| 中国女人久久久| 欧美日韩国产精品自在自线| 亚洲日本中文字幕| 欧美1区免费| 影音先锋日韩精品| 久久久天天操| 国内精品久久久久久 | 亚洲黑丝一区二区| 久久综合伊人| 极品日韩av| 久久精品成人一区二区三区| 国产日韩欧美一区在线 | 欧美福利视频| 亚洲精品系列| 欧美激情精品久久久久久黑人 | 国产日韩一级二级三级| 亚洲欧美日韩国产综合| 国产精品嫩草99a| 亚洲男人的天堂在线| 国产精品区一区二区三| 亚洲一区免费看| 国产精品久线观看视频| 亚洲欧美高清| 国产欧美91| 久久精品国产久精国产爱| 国产伪娘ts一区| 久久av一区二区三区漫画| 国产一级久久| 久久免费偷拍视频| 亚洲第一精品影视| 欧美韩日亚洲| 这里只有精品丝袜| 国产精品美女999| 欧美一级大片在线免费观看| 国产资源精品在线观看| 久久午夜视频| 亚洲黄色尤物视频| 欧美精品aa| 亚洲综合丁香| 国产一区在线播放| 美女网站在线免费欧美精品| 亚洲日本久久| 国产精品成人免费视频| 性色av一区二区怡红| 韩国av一区| 欧美激情一区二区三级高清视频| 99视频一区二区| 国产精品女主播| 久久精品国产99精品国产亚洲性色| 在线播放亚洲一区| 欧美精品v国产精品v日韩精品 | 欧美精品色网| 亚洲免费中文| 韩国av一区| 欧美区一区二区三区| 亚洲性线免费观看视频成熟| 国产亚洲欧美激情| 欧美精品久久久久久久免费观看 | 亚洲女女做受ⅹxx高潮| 好吊成人免视频| 欧美激情一区二区三区蜜桃视频| 亚洲小视频在线| 樱桃成人精品视频在线播放| 欧美日韩国产三区| 欧美中文字幕在线| 最新国产乱人伦偷精品免费网站| 国产精品人人爽人人做我的可爱| 久久亚洲精品一区二区| 9l国产精品久久久久麻豆| 国产日韩欧美亚洲| 欧美精品在线免费| 国产精品一区二区久久| 久久视频精品在线| 一区二区欧美日韩| 国产中文一区| 欧美日韩国产高清| 久久av资源网站| 亚洲精品看片| 国产日本欧美一区二区三区在线 | 国产精品伦一区| 蜜桃伊人久久| 亚洲综合色婷婷| 亚洲电影免费观看高清| 国产精品日本一区二区 | 国产一区二区精品久久99| 欧美激情在线| 久久本道综合色狠狠五月| 日韩午夜在线| 精品69视频一区二区三区| 欧美日韩四区| 久久久伊人欧美| 亚洲综合色婷婷| 亚洲人成网站精品片在线观看| 国产欧美韩日| 欧美三级资源在线| 免费不卡中文字幕视频| 欧美一二区视频| 一区二区三区高清不卡| 亚洲国产精品久久久久秋霞蜜臀 | 国产精品私人影院| 欧美激情视频免费观看| 久久久之久亚州精品露出| 亚洲欧美视频在线| 日韩一级在线| 亚洲国产精品va在线看黑人| 国产欧美亚洲日本| 欧美性天天影院| 欧美精品videossex性护士| 久久深夜福利免费观看| 欧美一区二区精品久久911| 一区二区三区四区五区精品| 亚洲日本激情| 在线观看av不卡| 国产丝袜一区二区三区| 国产精品蜜臀在线观看| 欧美日韩亚洲高清| 欧美激情久久久久| 久久综合色8888| 久久久久久久久伊人| 欧美诱惑福利视频| 亚洲午夜久久久久久久久电影网| 亚洲区在线播放| 亚洲国产一区二区三区青草影视| 狠狠色噜噜狠狠色综合久 | 亚洲乱码国产乱码精品精可以看 | 国产亚洲欧美一区| 国产精品一区免费观看| 欧美视频在线观看免费网址| 欧美好吊妞视频| 欧美国产视频在线| 欧美国产欧美亚州国产日韩mv天天看完整| 久久久久五月天| 久久精品五月| 久久久久久精| 久久精品日产第一区二区| 欧美自拍偷拍| 久久久久www| 久久久久一区二区三区| 久久久亚洲欧洲日产国码αv| 久久爱另类一区二区小说| 欧美一区二区三区视频在线观看 | 亚洲欧美日韩在线一区| 性做久久久久久久久| 欧美亚洲综合另类| 欧美在线免费看| 久久精品视频在线播放| 久久午夜av|