Java

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            8 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

          UTF-16是Unicode的其中一個使用方式。 UTF是 Unicode Translation Format,即把Unicode轉做某種格式的意思。

          它定義于ISO/IEC 10646-1的附錄Q,而RFC2781也定義了相似的做法。

          在Unicode基本多文種平面定義的字符(無論是拉丁字母、漢字或其他文字或符號),一律使用2字節儲存。而在輔助平面定義的字符,會以代理對(surrogate pair)的形式,以兩個2字節的值來儲存。

          UTF-16比起UTF-8,好處在于大部分字符都以固定長度的字節 (2字節) 儲存,但UTF-16卻無法兼容于ASCII編碼。

          UTF-16的編碼模式

          UTF-16的大尾序和小尾序儲存形式都在用。一般來說,以Macintosh制作或儲存的文字使用大尾序格式,以Microsoft或Linux制作或儲存的文字使用小尾序格式。

          為了弄清楚UTF-16文件的大小尾序,在UTF-16文件的開首,都會放置一個U+FEFF字符作為Byte Order Mark (UTF-16LE 以 FF FE 代表,UTF-16BE 以 FE FF 代表),以顯示這個文字檔案是以UTF-16編碼。

          以下的例子有四個字符:“朱”、半角逗號、“聿”、“??”。

          使用 UTF-16 編碼的例子
          編碼名稱 編碼次序 編碼
          UTF-16LE 小尾序 31 67, 2C 00, 7F 80, 62 D8 81 DF
          UTF-16BE 大尾序 67 31, 00 2C, 80 7F, D8 62 DF 81
          UTF-16 小尾序,包含BOM FF FE, 31 67, 2C 00, 7F 80, 62 D8 81 DF
          UTF-16 大尾序,包含BOM FE FF, 67 31, 00 2C, 80 7F, D8 62 DF 81

          UTF-16 與 UCS-2 的關系

          UTF-16可看成是UCS-2的父集。在沒有輔助平面字符前,UTF-16與UCS-2所指的是同一的意思。但當引入輔助平面字符后,就只稱為UTF-16了。現在若有軟件聲稱自己支援UCS-2編碼,那其實是暗指它不能支援輔助平面字符的委婉語。

          posted on 2006-06-29 16:51 java執著者 閱讀(2017) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 将乐县| 砚山县| 贺州市| 太谷县| 长顺县| 汤阴县| 依安县| 涞源县| 上思县| 滁州市| 沐川县| 广平县| 日照市| 桃源县| 隆化县| 桐柏县| 平远县| 西乡县| 砚山县| 黄梅县| 台东县| 广河县| 班戈县| 乡城县| 禄劝| 柏乡县| 宜宾县| 长治县| 来凤县| 马公市| 临清市| 城固县| 讷河市| 万载县| 瑞丽市| 综艺| 仙游县| 潜江市| 锦州市| 澄江县| 蛟河市|