UTF-32

維基百科,自由的 百科全書

UTF-32是32位Unicode轉換格式(Unicode Transformation Formats, 或UTF)的縮寫UTF-32是一於編碼Unicode定,該協定使用32位比特Unicode編碼(但前比特須為零,故能表示231Unicode)。其他可變長度的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-8UTF-16相比,UTF-32更容易遭到截斷。即使使用了"定寬"字型,在大多下用UTF-32計算顯示字串的寬度也不比其他編碼更加容易。主要原因是,存在著一個字符位置會有多於一種可能的碼點(結合字符)或一個碼點用多於一個字符位置(如CJK表意字符)。結合符號也意味著,文書編輯者不能將一個位視同一個編輯上的單位。