lqxue

          常用鏈接

          統計

          book

          tools

          最新評論

          java 編碼研究感想

          1、iso8859-1
          屬于單字節編碼,最多能表示的字符范圍是0-255,應用于英文系列。比如,字母'a'的編碼為0x61=97。
          很明顯,iso8859-1編碼表示的字符范圍很窄,無法表示中文字符。但是,由于是單字節編碼,和計算機最基礎的表示單位一致,所以很多時候,仍舊使用 iso8859-1編碼來表示。而且在很多協議上,默認使用該編碼。比如,雖然"中文"兩個字不存在iso8859-1編碼,以gb2312編碼為例,應 該是"[u]d6d0 cec4[/u]"兩個字符,使用iso8859-1編碼的時候則將它拆開為4個字節來表示:"[u]d6 d0 ce c4[/u]"(事實上,在進行存儲的時候,也是以字節為單位處理的)。而如果是UTF編碼,則是6個字節"[u]e4 b8 ad e6 96 87[/u]"。很明顯,這種表示方法還需要以另一種編碼為基礎。
          2、 GB2312/GBK
          這就是漢子的國標碼,專門用來表示漢字,是雙字節編碼,而英文字母和iso8859-1一致(兼容iso8859-1編碼)。其中gbk編碼能夠用來同時表示繁體字和簡體字,而gb2312只能表示簡體字,gbk是兼容gb2312編碼的。
          3、 unicode
          這是最統一的編碼,可以用來表示所有語言的字符,而且是定長雙字節(也有四字節的)編碼,包括英文字母在內。所以可以說它是不兼容iso8859-1編碼 的,也不兼容任何編碼。不過,相對于iso8859-1編碼來說,uniocode編碼只是在前面增加了一個0字節,比如字母'a'為"[u]00 61[/u]"。
          需要說明的是,定長編碼便于計算機處理(注意GB2312/GBK不是定長編碼),而unicode又可以用來表示所有字符,所以在很多軟件內部是使用unicode編碼來處理的,比如java。
          4、UTF
          考慮到unicode編碼不兼容iso8859-1編碼,而且容易占用更多的空間:因為對于英文字母,unicode也需要兩個字節來表示。所以 unicode不便于傳輸和存儲。因此而產生了utf編碼,utf編碼兼容iso8859-1編碼,同時也可以用來表示所有語言的字符,不過,utf編碼 是不定長編碼,每一個字符的長度從1-6個字節不等。另外,utf編碼自帶簡單的校驗功能。一般來講,英文字母都是用一個字節表示,而漢字使用三個字節。
          注意,雖然說utf是為了使用更少的空間而使用的,但那只是相對于unicode編碼來說,如果已經知道是漢字,則使用GB2312/GBK無疑是最節省 的。不過另一方面,值得說明的是,雖然utf編碼對漢字使用3個字節,但即使對于漢字網頁,utf編碼也會比unicode編碼節省,因為網頁中包含了很 多的英文字符。
          5、如果我們以一種能表示中文的編碼格式(例如GBK、unicode)來保存中文到文件中,那么當我們用properties load時,只要load時的編碼格式(默認8859-1)和你保存的文件的編碼格式相同,那么就不會出現亂碼。
          6、之所以\u4F60這種形式支持國際化,是因為這種形式的內容無論那種編碼都是支持的,當我們用properties.getProperty()時,這個方法會對key和value都進行轉化一次,當其碰見這種碼時,它就把他轉化為unicode碼后返回。 所以,我們可以利用工具(例如:native2ascii )把.properties文件轉化成這種格式以方便我們支持國際化。

          參考鏈接:
              1、http://www.aygfsteel.com/beike/archive/2006/04/29/44038.html
              2、http://tech.ccidnet.com/art/1077/20050704/279619_1.html
              3、http://linux.chinaunix.net/bbs/archiver/tid-896583.html

          posted on 2007-05-29 13:37 lqx 閱讀(190) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 文昌市| 迁西县| 锦屏县| 育儿| 水富县| 金川县| 鹤山市| 西吉县| 刚察县| 石渠县| 凭祥市| 泰州市| 和顺县| 荥经县| 逊克县| 大港区| 莱州市| 长海县| 镇坪县| 武城县| 九龙城区| 自治县| 扎赉特旗| 通城县| 长武县| 卢龙县| 滨海县| 宁海县| 新乡县| 罗田县| 南丹县| 双牌县| 祥云县| 保山市| 泸水县| 临高县| 彭泽县| 虹口区| 城步| 年辖:市辖区| 共和县|