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

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

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

大小:31 人氣: 2010-11-25 需要積分:3
小芳的空間

用戶(hù)級(jí)別:注冊(cè)會(huì)員

貢獻(xiàn)文章:

貢獻(xiàn)資料:

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

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

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

?

非常好我支持^.^

(1) 100%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

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

      ?