UTF-32

UTF-32是32位Unicode转换格式(Unicode Transformation Formats, 或UTF)的缩写。UTF-32是一种用于编码Unicode的协定,该协定使用32位比特对每个Unicode码位进行编码(但前导比特数必须为零,故仅能表示231个Unicode码位)。与其他可变长度的Unicode转换格式(UTF)相比,UTF-32编码长度是固定的,UTF-32中的每个32位值代表一个Unicode码位,并且与该码位的数值完全一致。

UTF-32的主要优点是可以直接由Unicode码位来索引。在编码序列中查找第N个编码是一个常数时间操作。相比之下,其他可变长度编码需要进行循序存取操作才能在编码序列中找到第N个编码。这使得在计算机程序设计中,编码序列中的字符位置可以用一个整数来表示,整数加一即可得到下一个字符的位置,就和ASCII字符串一样简单。

UTF-32的主要缺点是每个码位使用四个字节,空间浪费较多。在大多数文本中,非基本多文種平面的字符非常罕见,这使得UTF-32所需空间接近UTF-16的两倍和UTF-8的四倍(具体取决于文本中ASCII字符的比例)。

尽管每一個碼位使用固定長度的位元組看似方便,但UTF-32並不如其它Unicode編碼使用廣泛。與UTF-8及UTF-16相比,UTF-32更容易遭到截斷。即使使用了"定寬"字型,在大多数情况下用UTF-32計算顯示字串的寬度也并不比其他编码更加容易。主要原因是,存在著一個字符位置會有多於一種可能的碼點(結合字符)或一個碼點用多於一個字符位置(如CJK表意字符)。結合符號也意味著,文書編輯者不能將一個码位視同一個編輯上的單位。

歷史

原本ISO 10646標準定義了一個32位元的編碼形式,稱作UCS-4通用字符集(UCS)的每一個字符由0到十六進制的7FFFFFFF的31位数值表示(符号位未使用且零)。UCS-4足以用來表示所有的Unicode的字碼空間,其最大的碼位為十六進制的7FFFFFFF,所以其空間約20亿個碼位。2003年11月,由于UTF-16编码形式的限制,RFC 3629标准将Unicode限制为仅支持U+10FFFF以内的码位(另外U+D800到U+DFFF范围内也被保留使用)[1][2]。虽然在之前的ISO标准(1998年的Unicode 2.1)中0xE00000到0xFFFFFF和0x60000000到0x7FFFFFFF这些区域被分配给“保留私人使用”,但这些区域也在后续版本中被删除。在 ISO/IEC JTC 1/SC 2 WG2申明中规定UCS-4将来所有的字符分配将被限制在Unicode范围内,所以UTF-32和UCS4能表示的字符是相同的。

註釋

  1. ^ ISO/IEC 10646:2014 (页面存档备份,存于互联网档案馆) Clause 9.4: "Because surrogate code points are not UCS scalar values, UTF-32 code units in the range 0000 D800-0000 DFFF are ill-formed". Clause 4.57: "[UCS codespace] consisting of the integers from 0 to 10 FFFF (hexadecimal)". Clause 4.58: "[UCS scalar value] 存档副本 (PDF). [2017-04-13]. (原始内容 (PDF)存档于2015-01-04).  any UCS code point except high-surrogate and low-surrogate code points".
  2. ^ Mapping code points to Unicode encoding forms (页面存档备份,存于互联网档案馆), § 1: UTF-32

外部連結

  • (英文)The Unicode Standard 4.1,第三章 (页面存档备份,存于互联网档案馆) - 在§3.10, D43-D4中正式定義 UTF-32
  • (英文)Unicode Standard Annex #19 (页面存档备份,存于互联网档案馆) - Unicode 3.x 中正式定義的 UTF-32(2001 年三月;最後更新於 2002 年三月)
  • (英文)註冊新字集:UTF-32, UTF-32BE, UTF-32LE - IANA 字符集新增 UTF-32的宣言(2002 年四月)
Unicode
码位
字符
通用字元集字元英语Universal Character Set characters
列表
處理
演算法
統一碼編碼比較英语Comparison of Unicode encodings
組合字符
使用
相關標準
相關主題
 
Unicode收录的文字
收录文字
現代文字
古代文字
標記文字
符號
早期電信
  • 電報電碼英语Telegraph code
    • 庫克與惠斯通英语Cooke and Wheatstone telegraph
    • 摩斯
      • 非拉丁字母英语Morse code for non-Latin alphabets
      • 日文英语Wabun code
      • 中文
      • 西里爾字母英语Russian Morse code
      • 韓文英语SKATS
    • 博多與莫瑞
  • Fieldata英语Fieldata
  • ASCII
  • BCDIC英语BCD (character encoding)
  • 電傳文訊英语Teletex電傳視訊英语Videotex電視資訊
    • T.51/ISO/IEC 6937英语T.51/ISO/IEC 6937
    • ITU T.61英语ITU T.61
    • ITU T.101英语Videotex character set
    • 世界系統電傳文訊英语World System Teletext
      • 字元集英语Teletext character set
ISO/IEC 8859
書目
  • MARC-8英语MARC-8
  • ISO 5426英语ISO 5426
  • ISO 5427英语ISO 5427
  • ISO 5428英语ISO 5428
  • ISO 6438
  • ISO 6862英语ISO 6862
國家標準
ISO/IEC 2022
macOS代码页
  • 亞美尼亞文英语Mac OS Armenian
  • 阿拉伯文
  • 巴倫支西里爾字母英语Mac OS Barents Cyrillic
  • 凱爾特語族英语Mac OS Celtic
  • 中歐語言
  • 克羅埃西亞文英语Mac OS Croatian encoding
  • 西里爾字母英语Mac OS Cyrillic encoding
  • 梵文
  • 波斯文英语MacFarsi encoding
  • 字體X英语Macintosh Font X encoding
  • 蓋爾文英语Mac OS Gaelic
  • 喬治亞文英语Mac OS Georgian
  • 希臘文英语MacGreek encoding
  • 古吉拉特文英语Mac OS Gujarati
  • 古木基文英语Mac OS Gurmukhi
  • 希伯來文英语Mac OS Hebrew
  • 冰島文英语Mac OS Icelandic encoding
  • 因紐特文英语Mac OS Inuit
  • 鍵盤英语Mac OS Keyboard encoding
  • 拉丁文英语Macintosh Latin encoding
  • 馬爾他文/世界文英语Mac OS Maltese/Esperanto encoding
  • 歐甘字母英语Mac OS Ogham
  • 羅曼語族
  • 羅馬尼亞文英语Mac OS Romanian encoding
  • 薩米文英语Mac OS Sámi
  • 土耳其文英语Mac OS Turkish encoding
  • 土耳其西里爾字母英语Mac OS Turkic Cyrillic
  • 烏克蘭文英语Mac OS Ukrainian encoding
  • VT100英语VT100 encoding
DOS代碼頁
  • 437
  • 668英语Code page 668
  • 708英语Code page 708
  • 720英语Code page 720
  • 737英语Code page 737
  • 770英语Code page 770
  • 773英语Code page 773
  • 775英语Code page 775
  • 776英语Code page 776
  • 777英语Code page 777
  • 778英语Code page 778
  • 850英语Code page 850
  • 851英语Code page 851
  • 852英语Code page 852
  • 853英语Code page 853
  • 855英语Code page 855
  • 856英语Code page 856
  • 857英语Code page 857
  • 858英语Code page 858
  • 859英语Code page 859
  • 860英语Code page 860
  • 861英语Code page 861
  • 862英语Code page 862
  • 863英语Code page 863
  • 864英语Code page 864
  • 865英语Code page 865
  • 866英语Code page 866
  • 867英语Code page 867
  • 868英语Code page 868
  • 869英语Code page 869
  • 897英语Code page 897
  • 899英语Code page 899
  • 903英语Code page 903
  • 904英语Code page 904
  • 932英语Code page 932 (IBM)
  • 936英语Code page 936 (IBM)
  • 942英语Code page 942
  • 949英语Code page 949 (IBM)
  • 950
  • 951英语Code page 951
  • 1040英语Code page 1040
  • 1042英语Code page 1042
  • 1043英语Code page 1043
  • 1046英语Code page 1046
  • 1098英语Code page 1098
  • 1115英语Code page 1115
  • 1116英语Code page 1116
  • 1117英语Code page 1117
  • 1118英语Code page 1118
  • 1127英语Code page 1127
  • 3846英语Code page 3846
  • ABICOMP英语ABICOMP character set
  • CS Indic英语CS Indic character set
  • CSX Indic英语CSX Indic character set
  • CSX+ Indic英语CSX+ Indic character set
  • CWI-2英语CWI-2
  • 伊朗系統英语Iran System encoding
  • 卡梅尼茨英语Kamenický encoding
  • 馬索維亞英语Mazovia encoding
  • MIK英语MIK (character set)
IBM AIX代碼頁
  • 895英语Code page 895
  • 896英语Code page 896
  • 912英语Code page 912
  • 915英语Code page 915
  • 921英语Code page 921
  • 922英语Code page 922
  • 1006英语Code page 1006
  • 1008英语Code page 1008
  • 1009英语Code page 1009
  • 1010英语Code page 1010
  • 1012英语Code page 1012
  • 1013英语Code page 1013
  • 1014英语Code page 1014
  • 1015英语Code page 1015
  • 1016英语Code page 1016
  • 1017英语Code page 1017
  • 1018英语Code page 1018
  • 1019英语Code page 1019
  • 1124英语Code page 1124
  • 1133英语Code page 1133
Microsoft Windows代碼頁英语Windows code page
  • CER-GS英语CER-GS
  • 932英语Code page 932 (Microsoft Windows)
  • 936
  • 950
  • 1169英语Code page 1169
  • Extended Latin-8英语Extended Latin-8
  • 1250英语Windows-1250
  • 1251英语Windows-1251
  • 1252
  • 1253英语Windows-1253
  • 1254英语Windows-1254
  • 1255英语Windows-1255
  • 1256英语Windows-1256
  • 1257英语Windows-1257
  • 1258英语Windows-1258
  • 1270英语Windows-1270
  • 西里爾字母+芬蘭文英语Windows Cyrillic + Finnish
  • 西里爾字母+法文英语Windows Cyrillic + French
  • 西里爾字母+德文英语Windows Cyrillic + German
  • 希臘語變音符號英语Windows Polytonic Greek
EBCDIC代碼頁
  • 37英语Code page 37
  • EBCDIC中的日文英语Japanese language in EBCDIC
  • DKOI英语DKOI
DEC終端機(VTx英语VT220
  • MCS英语Multinational Character Set
  • NRCS英语National Replacement Character Set
    • 加拿大法文英语Code page 1020
    • 瑞士文英语Code page 1021
    • 西班牙文英语Code page 1023
    • 英國英文英语Code page 1101
    • 荷蘭文英语Code page 1102
    • 芬蘭文英语Code page 1103
    • 法文英语Code page 1104
    • 挪威文/丹麥文英语Code page 1105
    • 瑞典文英语Code page 1106
    • 挪威文/丹麥文(替代)英语Code page 1107
  • 8位元希臘文英语Code page 1287
  • 8位元土耳其文英语Code page 1288
  • SI 960英语SI 960
  • 希伯來文英语DEC Hebrew
  • 特殊圖形英语DEC Special Graphics
  • 技術英语DEC Technical Character Set
特定平臺
  • 1057英语Code page 1057
  • Acorn英语RISC OS character set
  • Adobe標準英语PostScript Standard Encoding
  • Adobe Latin 1英语PostScript Latin 1 Encoding
  • Amstrad CPC英语Amstrad CPC character set
  • Apple II英语Apple II character set
  • 雅達利資訊交換標準碼英语ATASCII
  • 雅達利ST英语Atari ST character set
  • BICS英语Bitstream International Character Set
  • 卡西歐計算機英语Casio calculator character sets
  • CDC英语CDC display code
  • Compucolor II英语Compucolor II character set
  • CP/M+英语Amstrad CP/M Plus character set
  • DEC RADIX 50英语DEC RADIX 50
  • DEC MCS英语Multinational Character Set/NRCS英语National Replacement Character Set
  • DG國際英语DG International
  • Fieldata英语Fieldata
  • GEM英语GEM character set
  • GSM 03.38英语GSM 03.38
  • HP Roman英语HP Roman
  • HP FOCAL英语FOCAL character set
  • HP RPL英语RPL character set
  • SQUOZE英语SQUOZE
  • LICS英语Lotus International Character Set
  • LMBCS英语Lotus Multi-Byte Character Set
  • MSX英语MSX character set
  • NEC APC英语NEC APC character set
  • NeXT英语NeXT character set
  • PETSCII英语PETSCII
  • SEGA SC-3000英语Sega SC-3000 character set
  • 夏普計算機英语Sharp pocket computer character sets
  • 夏普MZ英语Sharp MZ character set
  • 辛克萊QL英语Sinclair QL character set
  • 符號
  • 電傳文訊英语Teletext character set
  • 德州儀器計算機英语TI calculator character sets
  • TRS-80英语TRS-80 character set
  • 文圖拉國際英语Ventura International
  • WISCII英语Wang International Standard Code for Information Interchange
  • XCCS英语Xerox Character Code Standard
  • ZX80英语ZX80 character set
  • ZX81英语ZX81 character set
  • ZX Spectrum英语ZX Spectrum character set
Unicode通用字符集
TeX排版系統
  • 科克英语Cork encoding
  • LY1英语LY1 encoding
  • OML英语OML encoding
  • OMS英语OMS encoding
  • OT1英语OT1 encoding
其他代碼頁
  • ABICOMP英语ABICOMP character set
  • ASMO 449英语ASMO 449
  • 大五碼
  • APL符號數位編碼英语Digital encoding of APL symbols
    • ISO-IR-68英语ISO-IR-68
  • ARIB STD-B24
  • HZ英语HZ (character encoding)
  • IEC-P27-1英语IEC-P27-1
  • INIS
    • 7位元英语INIS character set
    • INIS-8英语8位元
  • ISO-IR-169英语ISO-IR-169
  • ISO 2033英语ISO 2033
  • KOI
    • -R
    • -RU英语KOI8-RU
    • -U
  • 今昔文字鏡
  • SEASCII英语Stanford Extended ASCII
  • Stanford/ITS英语Stanford/ITS character set
  • TRON英语TRON (encoding)
  • 統合韓文代碼英语Unified Hangul Code
控制字符
相關條目
分类 字元集