posts - 8, comments - 13, trackbacks - 0, articles - 43
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          ASCII GBK2312 GBK | UNICODE UTF-8 UTF-16 區別 關系

          Posted on 2010-12-17 10:50 kangaroo 閱讀(1247) 評論(0)  編輯  收藏 所屬分類: programmer

          ASCII是最初的計算機指定的一套符號編碼,使用一個字節其中的7位,128個數值代表不同字符,對于英語這個已經是足夠,
          但是對于其他國家的語言,卻遠遠不夠,如漢語,日語,韓語,所以就出現了非ASCII的字符編碼,如gbk2312,gbk的漢字編碼。這些非ascii的編碼都是兼容ascii128個符號編碼的。

          ------------------------------------------------------------------------------------------------------------------------------------------------------

          UNICODE首先只是一個字符集,它的出現就是因為各個國家出臺自己的語言編碼,為了統一這些所有語言,可以理解unicode是涵蓋各個國家字符的集合,現在的規模可以容納100多萬個符號。需要說明的是,定長編碼便于計算機處理(注意GB2312/GBK不是定長編碼),而unicode又可以用來表示所有字符,所以在很多軟件內部是使用unicode編碼來處理的,比如java。
          unicode只是一個符號集,只規定了符號的二進制代碼,卻沒有規定這個二進制代碼應該如何存儲,即編碼方式,常見的有utf-8和utf-16。
          (如果unicode規定,每個符號用三個字節表示,那么英文字母只占用一個字節,就浪費很多存儲空間。)
          UTF-8就是一種變長的編碼方式,它使用1~4個字節表示一個符號,根據不同的符號而變化字節長度。


          我們常用的記事本功能,在"save as"的時候,可以選擇不同的編碼方式,里面有四個選擇:ansi,unicode,unicode big endian,utf-8:
          1.ANSI是默認的編碼方式。對于英文文件是ASCII編碼,對于簡體中文文件是GB2312編碼(只針對Windows簡體中文版,如果是繁體中文版會采用Big5碼)。
          2.Unicode編碼指的是UCS-2編碼方式,即直接用兩個字節存入字符的Unicode碼。這個選項用的little endian格式。

          3.Unicode big endian編碼與上一個選項相對應。我在下一節會解釋little endian和big endian的涵義。

          4.UTF-8編碼,也就是上一節談到的編碼方法。



          參考:

          http://www.cnblogs.com/pony/archive/2009/02/05/1384323.html
          http://blog.chinaunix.net/u1/56156/showart_2245355.html
          http://liaoshaoyao.javaeye.com/blog/667056

          主站蜘蛛池模板: 平阳县| 平昌县| 枞阳县| 余姚市| 沅江市| 黄山市| 天气| 成安县| 兴仁县| 广德县| 普格县| 哈尔滨市| 营口市| 梅州市| 明光市| 嘉定区| 邵东县| 阳曲县| 县级市| 株洲县| 镇康县| 永康市| 宣城市| 锡林浩特市| 绿春县| 蒙阴县| 建湖县| 泗阳县| 稻城县| 莱芜市| 峨山| 凌云县| 通许县| 麟游县| 名山县| 齐齐哈尔市| 大埔县| 奉贤区| 全椒县| 博爱县| 白朗县|