欧美在线小视频_成人午夜sm精品久久久久久久_综合国产第二页_蜜乳av一区二区三区

  • ASCII,Unicode和UTF-8簡述

    2012-04-06

    字符編碼是計算機技術的基石,想要熟練使用計算機,就必須懂得一點字符編碼的知識。

    1. ASCII碼

    我們知道,在計算機內部,所有的信息終都表示為一個二進制的字符串。每一個二進制位(bit)有0和1兩種狀態,因此八個二進制位就可以組合出256種狀態,這被稱為一個字節(byte)。也就是說,一個字節一共可以用來表示256種不同的狀態,每一個狀態對應一個符號,就是256個符號,從0000000到11111111。

    上個世紀60年代,美國制定了一套字符編碼,對英語字符與二進制位之間的關系,做了統一規定。這被稱為ASCII碼,一直沿用至今。

    ASCII碼一共規定了128個字符的編碼,比如空格“SPACE”是32(二進制00100000),大寫的字母A是65(二進制01000001)。這128個符號(包括32個不能打印出來的控制符號),只占用了一個字節的后面7位,前面的1位統一規定為0。

    2、非ASCII編碼

    英語用128個符號編碼就夠了,但是用來表示其他語言,128個符號是不夠的。比如,在法語中,字母上方有注音符號,它就無法用ASCII碼表示。于是,一些歐洲國家就決定,利用字節中閑置的高位編入新的符號。比如,法語中的é的編碼為130(二進制10000010)。這樣一來,這些歐洲國家使用的編碼體系,可以表示多256個符號。

    但是,這里又出現了新的問題。不同的國家有不同的字母,因此,哪怕它們都使用256個符號的編碼方式,代表的字母卻不一樣。比如,130在法語編碼中代表了é,在希伯來語編碼中卻代表了字母Gimel (ג),在俄語編碼中又會代表另一個符號。但是不管怎樣,所有這些編碼方式中,0—127表示的符號是一樣的,不一樣的只是128—255的這一段。

    至于亞洲國家的文字,使用的符號就更多了,漢字就多達10萬左右。一個字節只能表示256種符號,肯定是不夠的,就必須使用多個字節表達一個符號。比如,簡體中文常見的編碼方式是GB2312,使用兩個字節表示一個漢字,所以理論上多可以表示256x256=65536個符號。

    中文編碼的問題需要專文討論,這篇筆記不涉及。這里只指出,雖然都是用多個字節表示一個符號,但是GB類的漢字編碼與后文的Unicode和UTF-8是毫無關系的。

    3.Unicode

    正如上一節所說,世界上存在著多種編碼方式,同一個二進制數字可以被解釋成不同的符號。因此,要想打開一個文本文件,就必須知道它的編碼方式,否則用錯誤的編碼方式解讀,就會出現亂碼。為什么電子郵件常常出現亂碼?就是因為發信人和收信人使用的編碼方式不一樣。

    可以想象,如果有一種編碼,將世界上所有的符號都納入其中。每一個符號都給予一個獨一無二的編碼,那么亂碼問題就會消失。這就是Unicode,就像它的名字都表示的,這是一種所有符號的編碼。

    Unicode當然是一個很大的集合,現在的規模可以容納100多萬個符號。每個符號的編碼都不一樣,比如,U+0639表示阿拉伯字母Ain,U+0041表示英語的大寫字母A,U+4E25表示漢字“嚴”。具體的符號對應表,可以查詢unicode.org,或者專門的漢字對應表。

    4. Unicode的問題

    需要注意的是,Unicode只是一個符號集,它只規定了符號的二進制代碼,卻沒有規定這個二進制代碼應該如何存儲。

    比如,漢字“嚴”的unicode是十六進制數4E25,轉換成二進制數足足有15位(100111000100101),也就是說這個符號的表示至少需要2個字節。表示其他更大的符號,可能需要3個字節或者4個字節,甚至更多。

    這里就有兩個嚴重的問題,第一個問題是,如何才能區別unicode和ascii?計算機怎么知道三個字節表示一個符號,而不是分別表示三個符號呢?第二個問題是,我們已經知道,英文字母只用一個字節表示就夠了,如果unicode統一規定,每個符號用三個或四個字節表示,那么每個英文字母前都必然有二到三個字節是0,這對于存儲來說是極大的浪費,文本文件的大小會因此大出二三倍,這是無法接受的。

    它們造成的結果是:1)出現了unicode的多種存儲方式,也就是說有許多種不同的二進制格式,可以用來表示unicode。2)unicode在很長一段時間內無法推廣,直到互聯網的出現。

    5.UTF-8

    互聯網的普及,強烈要求出現一種統一的編碼方式。UTF-8就是在互聯網上使用廣的一種unicode的實現方式。其他實現方式還包括UTF-16和UTF-32,不過在互聯網上基本不用。重復一遍,這里的關系是,UTF-8是Unicode的實現方式之一。

    UTF-8大的一個特點,就是它是一種變長的編碼方式。它可以使用1~4個字節表示一個符號,根據不同的符號而變化字節長度。

    UTF-8的編碼規則很簡單,只有二條:

    1)對于單字節的符號,字節的第一位設為0,后面7位為這個符號的unicode碼。因此對于英語字母,UTF-8編碼和ASCII碼是相同的。

    2)對于n字節的符號(n>1),第一個字節的前n位都設為1,第n+1位設為0,后面字節的前兩位一律設為10。剩下的沒有提及的二進制位,全部為這個符號的unicode碼。

    下表總結了編碼規則,字母x表示可用編碼的位。

    Unicode符號范圍 | UTF-8編碼方式
    (十六進制) | (二進制)
    --------------------+---------------------------------------------
    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

    下面,還是以漢字“嚴”為例,演示如何實現UTF-8編碼。

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

    6. Unicode與UTF-8之間的轉換

    通過上一節的例子,可以看到“嚴”的Unicode碼是4E25,UTF-8編碼是E4B8A5,兩者是不一樣的。它們之間的轉換可以通過程序實現。

    在Windows平臺下,有一個簡單的轉化方法,就是使用內置的記事本小程序Notepad.exe。打開文件后,點擊“文件”菜單中的“另存為”命令,會跳出一個對話框,在底部有一個“編碼”的下拉條。

    欧美在线小视频_成人午夜sm精品久久久久久久_综合国产第二页_蜜乳av一区二区三区

        国产精品免费观看久久| 国产91美女视频| 91av在线免费播放| 国产又粗又爽又黄的视频| 丰满少妇被猛烈进入高清播放| 日韩欧美色视频| 国产黄色一级网站| 91制片厂免费观看| 九热视频在线观看| 日韩xxxx视频| 欧美三级午夜理伦三级老人| 免费av网址在线| 成人免费在线视频播放| 一区二区三区欧美精品| 无码人妻h动漫| 久久99久久99精品| 992tv人人草| 91国产精品视频在线观看| 成人免费视频91| 色婷婷777777仙踪林| jizzzz日本| 天天影视综合色| 九色在线视频观看| 成人免费在线视频播放| 国产又粗又猛大又黄又爽| 天天操天天爱天天爽| 久久免费视频3| 国产男女免费视频| 国产一级片91| 干日本少妇视频| 伊人免费视频二| 亚洲免费黄色网| www.超碰com| 国产黄色特级片| 欧美爱爱视频免费看| 久久这里只有精品8| 久久观看最新视频| 青青草免费在线视频观看| 亚洲日本黄色片| 国产色视频在线播放| 午夜国产一区二区三区| 国产精品免费成人| 欧美xxxxx在线视频| 人妻精品无码一区二区三区| 欧美日韩精品在线一区二区 | 欧美一级中文字幕| 特级黄色录像片| 经典三级在线视频| 麻豆一区二区三区在线观看| 天堂v在线视频| 成年人三级视频| 无码人妻精品一区二区蜜桃百度| 欧洲美女和动交zoz0z| 天天干天天曰天天操| 欧美亚洲视频一区| 特级西西444| 日韩专区第三页| 欧美午夜性视频| 国产精品自拍片| 成年人小视频网站| 在线看的黄色网址| www.亚洲自拍| 一二三在线视频| 久久久久久免费看| 国产成人精品视频免费看| 激情六月丁香婷婷| 91极品视频在线观看| 在线a免费观看| 天堂а√在线中文在线| 丰满少妇久久久| 成人性做爰aaa片免费看不忠| 天天插天天操天天射| 日本77777| www.国产在线播放| 免费午夜视频在线观看| 午夜免费福利视频在线观看| 麻豆中文字幕在线观看| 国产成人在线小视频| 欧美性大战久久久久xxx| 九九热精品在线播放| 日本老太婆做爰视频| 5月婷婷6月丁香| 亚洲一级免费观看| 日韩视频 中文字幕| 男人操女人免费软件| 99re6在线观看| 成人av在线不卡| 国产福利影院在线观看| 最新av在线免费观看| 91精品91久久久中77777老牛| 特黄视频免费观看| 青青草国产免费| 三级视频中文字幕| 久久人人爽人人爽人人av| 茄子视频成人免费观看| 欧美亚洲视频一区| 成年人观看网站| 久久免费看毛片| 999香蕉视频| 欧美一级特黄aaaaaa在线看片| 六月丁香婷婷激情| 亚洲一级片免费观看| 国产三区在线视频| 国产精品啪啪啪视频| 午夜视频在线瓜伦| 美女av免费观看| 日本黄大片一区二区三区| 成人午夜视频在线观看免费| 久久国产激情视频| 青青草视频在线免费播放| 五月婷婷之婷婷| 18禁免费无码无遮挡不卡网站 | 国产真人做爰毛片视频直播| 日本肉体xxxx裸体xxx免费| 久久久久久人妻一区二区三区| 天天操天天干天天做| av动漫在线看| 亚洲色图都市激情| 日本中文字幕二区| 亚洲爆乳无码专区| 国产免费黄色一级片| 国产精品igao网网址不卡| 亚洲一区二区蜜桃| 国产深夜男女无套内射| 男人的天堂视频在线| 天天干天天综合| 成人三级视频在线播放| avav在线播放| 亚洲成人动漫在线| 久久精品视频在线观看免费| 国产一线二线三线在线观看| 免费无遮挡无码永久视频| 51xx午夜影福利| 国产成人强伦免费视频网站| 亚洲这里只有精品| 国产xxxxx视频| 日韩a在线播放| 免费看一级大黄情大片| 老子影院午夜伦不卡大全| 99热一区二区三区| 三日本三级少妇三级99| 中文字幕亚洲欧洲| 亚洲最大综合网| 国产真人无码作爱视频免费| 久久免费视频3| 欧美一级在线看| 国产成人无码精品久久久性色| 九九热只有这里有精品| 国内自拍中文字幕| 免费看黄色a级片| 欧美一级特黄aaaaaa在线看片| 26uuu成人| 久久久成人精品一区二区三区| 一级黄色片在线免费观看| 亚洲图色中文字幕| 99九九精品视频| 天堂v在线视频| 亚洲自拍偷拍一区二区三区| 欧美h视频在线观看| 亚洲最新免费视频| 佐佐木明希av| av网站大全免费| 欧美视频在线观看网站| 国产精品国产亚洲精品看不卡| 日日摸日日碰夜夜爽无码| 成 年 人 黄 色 大 片大 全| 男人添女人下面高潮视频| 777久久久精品一区二区三区| 干日本少妇首页| 国内自拍视频一区| 中文字幕亚洲欧洲| 国产高清av片| 国产高清不卡无码视频| 国产精品国产对白熟妇| 欧美成人xxxxx| 亚洲一区在线不卡| 涩多多在线观看| 国产精品自拍合集| 日本少妇高潮喷水视频| 成人精品小视频| 91视频这里只有精品| 日本一级淫片演员| av免费看网址| 男女曰b免费视频| 亚洲图色中文字幕| 路边理发店露脸熟妇泻火| 欧美深夜福利视频| www.99在线| 国产精品一区在线免费观看| 国产精品69久久久| 国产成人久久777777| 在线视频观看91| 97超碰在线人人| 欧美黄色性生活| 亚洲五码在线观看视频| 黄色动漫在线免费看| 婷婷激情5月天| 亚洲国产精品无码观看久久| 无码少妇一区二区三区芒果| 樱花草www在线|