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表意字符 ） 。 結合符號也意味著 ， 文書編輯者不能將一個碼位視同一個編輯上的單位 。