您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>java源码下载>

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

大小:31 人气: 2010-11-25 需要积分:0
小芳的空间

用户级别:注册会员

贡献文章:

贡献资料:

早期 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 的正 确用法很重要。

 

非常好我支持^.^

(1) 100%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!