UTF-16

UTF-16

UTF-16是Unicode字元編碼五層次模型的第三層:字元編碼表(Character Encoding Form,也稱為 "storage format")的一種實現方式。即把Unicode字元集的抽象碼位映射為16位長的整數(即碼元)的序列,用於數據存儲或傳遞。Unicode字元的碼位,需要1個或者2個16位長的碼元來表示,因此這是一個變長表示。

基本介紹

  • 中文名:UTF-16
  • 解釋Unicode字元編碼五層次模型 
  • 定義於 : ISO/IEC 10646-1的附錄Q
  •  在用形式:UTF-16的大尾序和小尾序 
簡介,編碼模式,相關聯繫,

簡介

UTF-16是Unicode的其中一個使用方式。 UTF是 Unicode TransferFormat,即把Unicode轉做某種格式的意思。
它定義於ISO/IEC 10646-1的附錄Q,而RFC2781也定義了相似的做法。
在Unicode基本多文種平面定義的字元(無論是拉丁字母、漢字或其他文字或符號),一律使用2位元組儲存。而在輔助平面定義的字元,會以代理對(surrogate pair)的形式,以兩個2位元組的值來儲存。
UTF-16比起UTF-8,好處在於大部分字元都以固定長度的位元組 (2位元組) 儲存,但UTF-16卻無法兼容於ASCII編碼。

編碼模式

UTF-16的大尾序和小尾序儲存形式都在用。一般來說,以Macintosh製作或儲存的文字使用大尾序格式,以Microsoft或Linux製作或儲存的文字使用小尾序格式。
為了弄清楚UTF-16檔案的大小尾序,在UTF-16檔案的開首,都會放置一個U+FEFF字元作為Byte Order Mark(UTF-16LE以FF FE代表,UTF-16BE以FE FF代表),以顯示這個文字檔案是以UTF-16編碼,其中U+FEFF字元在UNICODE中代表的意義是ZERO WIDTH NO-BREAK SPACE,顧名思義,它是個沒有寬度也沒有斷字的空白。

相關聯繫

UTF-16與UCS-2的關係
UTF-16可看成是UCS-2的父集。在沒有輔助平面字元(surrogate code points)前,UTF-16與UCS-2所指的是同一的意思。但當引入輔助平面字元後,就稱為UTF-16了。現在若有軟體聲稱自己支援UCS-2編碼,那其實是暗指它不能支援在UTF-16中超過2bytes的字集。對於小於0x10000的UCS碼,UTF-16編碼就等於UCS碼。

相關詞條

熱門詞條

聯絡我們