RM新时代网站-首页

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

使用Java語言進(jìn)行Unicode代理編程

大?。?/span>31 人氣: 2010-11-25 需要積分:3
小芳的空間

用戶級別:注冊會員

貢獻(xiàn)文章:

貢獻(xiàn)資料:

早期 Java 版本使用 16 位 char 數(shù)據(jù)類型表示 Unicode 字符。這種設(shè)計(jì)方 法有時(shí)比較合理,因?yàn)樗?Unicode 字符擁有的值都小于 65,535 (0xFFFF), 可以通過 16 位表示。但是,Unicode 后來將最大值增加到 1,114,111 (0x10FFFF)。由于 16 位太小,不能表示 Unicode version 3.1 中的所有 Unicode 字符,32 位值 — 稱為碼位(code point) — 被用于 UTF-32 編碼模式。

但與 32 位值相比,16 位值的內(nèi)存使用效率更高, 因此 Unicode 引入了一個(gè)種新設(shè)計(jì)方法來允許繼續(xù)使用 16 位值。UTF-16 中采 用的這種設(shè)計(jì)方法分配 1,024 值給 16 位高代理(high surrogate),將另外 的 1,024 值分配給 16 位低代理(low surrogate)。它使用一個(gè)高代理加上一 個(gè)低代理 — 一個(gè)代理對(surrogate pair) — 來表示 65,536 (0x10000) 和 1,114,111 (0x10FFFF) 之間的 1,048,576 (0x100000) 值 (1,024 和 1,024 的乘積)。

Java 1.5 保留了 char 類型的行為來表 示 UTF-16 值(以便兼容現(xiàn)有程序),它實(shí)現(xiàn)了碼位的概念來表示 UTF-32 值。這個(gè)擴(kuò)展(根據(jù) JSR 204:Unicode Supplementary Character Support 實(shí)現(xiàn)) 不需要記住 Unicode 碼位或轉(zhuǎn)換算法的準(zhǔn)確值 — 但理解代理 API 的正 確用法很重要。

?

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?
      RM新时代网站-首页