首頁 > Java > java教程 > Java UTF-16 編碼中的代理對是什麼?

Java UTF-16 編碼中的代理對是什麼?

Linda Hamilton
發布: 2024-12-05 10:12:11
原創
1020 人瀏覽過

What are Surrogate Pairs in Java's UTF-16 Encoding?

Java UTF-16 編碼中的代理對

當處理具有超出UTF-16 中使用的16 位元代碼單元的範圍

什麼是代理對?

在 UTF-16 中,代理對是兩個代碼單元的組合,這兩個代碼單元一起表示單一代碼點。當一個字元無法以單一 16 位元代碼單元進行編碼時,其表示如下:

  • 在該對的開頭使用高位代理程式碼單元,範圍為 U D800到 U DBFF。
  • 低代理代碼單元跟在高代理代碼後面,範圍為U DC00 到U DFFF.

高代理項表示代碼點的前半部分,而低代理項表示代碼點的後半部。它們一起形成一個 32 位元代碼點。

編碼和解碼

將超過U FFFF 的代碼點編碼為代理對的過程如下:

從代碼點減去0x10000 即可得到高代理項值。
將高代理值右移 10 位。
將 U D800 加到高代理值,以獲得高代理程式碼單元。
取代碼點的剩餘 10 位元以獲得低代理值代理值。
將 U DC00 加到低代理值以獲得低代理代碼單位。

從代理程式對解碼碼點涉及相反的過程。

範例

考慮 Unicode 字元 U 10400,它表示特點 ? 。將此字元編碼為代理對:

從U 10400 中減去0x10000:0x400
將0x400 右移10 位元:0x4
將U D800 加到0x4:U D04x單元)
新增U DC00至0x3C0:U DC00(低代理代碼單元)

字元 U 10400 現在由代理程式對 U D804 U DC00 表示。

以上是Java UTF-16 編碼中的代理對是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板