×

使用Java语言进行Unicode代理编程

消耗积分:3 | 格式:rar | 大小:31 | 2010-11-25

分享资料个

早期 Java 版本使用 16 位 char 数据类型表示 Unicode 字符。这种设计方 法有时比较合理,因为所有 Unicode 字符拥有的值都小于 65,535 (0xFFFF), 可以通过 16 位表示。但是,Unicode 后来将最大值增加到 1,114,111 (0x10FFFF)。由于 16 位太小,不能表示 Unicode version 3.1 中的所有 Unicode 字符,32 位值 — 称为码位(code point) — 被用于 UTF-32 编码模式。

但与 32 位值相比,16 位值的内存使用效率更高, 因此 Unicode 引入了一个种新设计方法来允许继续使用 16 位值。UTF-16 中采 用的这种设计方法分配 1,024 值给 16 位高代理(high surrogate),将另外 的 1,024 值分配给 16 位低代理(low surrogate)。它使用一个高代理加上一 个低代理 — 一个代理对(surrogate pair) — 来表示 65,536 (0x10000) 和 1,114,111 (0x10FFFF) 之间的 1,048,576 (0x100000) 值 (1,024 和 1,024 的乘积)。

Java 1.5 保留了 char 类型的行为来表 示 UTF-16 值(以便兼容现有程序),它实现了码位的概念来表示 UTF-32 值。这个扩展(根据 JSR 204:Unicode Supplementary Character Support 实现) 不需要记住 Unicode 码位或转换算法的准确值 — 但理解代理 API 的正 确用法很重要。

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !