导航:首页 > 编程语言 > java宽字符

java宽字符

发布时间:2024-12-22 07:52:35

java的char类型包含哪些数据

java的char是2字节,16bit,包含所有ascii字符,而且更多,api文档里有描述

char的数据是通过 UnicodeData 文件中的信息定义的,该文件是 Unicode Consortium 维护的 Unicode Character Database 的一部分。此文件指定了各种属性,其中包括每个已定义 Unicode 代码点或字符范围的名称和常规类别。

此文件及其描述可从 Unicode Consortium 获得,网址如下:

Unicode 字符表示形式

char 数据类型(和 Character 对象封装的值)基于原始的 Unicode 规范,将字符定义为固定宽度的 16 位实体。Unicode 标准曾做过修改,以允许那些其表示形式需要超过 16 位的字符。合法代码点 的范围现在是从 U+0000 到 U+10FFFF,即通常所说的 Unicode 标量值。(请参阅 Unicode 标准中 U+n 表示法的定义。)

从 U+0000 到 U+FFFF 的字符集有时也称为 Basic Multilingual Plane (BMP)。代码点大于 U+FFFF 的字符称为增补字符。Java 2 平台在 char 数组以及 String 和 StringBuffer 类中使用 UTF-16 表示形式。在这种表现形式中,增补字符表示为一对 char 值,第一个值取自高代理项 范围,即 (uD800-uDBFF),第二个值取自低代理项 范围,即 (uDC00-uDFFF)。

所以,char 值表示 Basic Multilingual Plane (BMP) 代码点,其中包括代理项代码点,或 UTF-16 编码的代码单元。int 值表示所有 Unicode 代码点,包括增补代码点。int 的 21 个低位(最低有效位)用于表示 Unicode 代码点,并且 11 个高位(最高有效位)必须为零。除非另有指定,否则与增补字符和代理项 char 值有关的行为如下:

只接受一个 char 值的方法无法支持增补字符。它们将代理项字符范围内的 char 值视为未定义字符。例如,Character.isLetter('uD840') 返回 false,即使是特定值,如果在字符串的后面跟着任何低代理项值,那么它将表示一个字母。

接受一个 int 值的方法支持所有 Unicode 字符,其中包括增补字符。例如,Character.isLetter(0x2F81A) 返回 true,因为代码点值表示一个字母(一个 CJK 象形文字)。

在 Java SE API 文档中,Unicode 代码点 用于范围在 U+0000 与 U+10FFFF 之间的字符值,而 Unicode 代码点 用于作为 UTF-16 编码的代码单元的 16 位 char 值。有关 Unicode 技术的详细信息,请参阅 Unicode Glossary。

阅读全文

与java宽字符相关的资料

热点内容
抽烟喝酒真的解压吗 浏览:562
精通php5应用开发 浏览:601
安卓机导资料到电脑用什么软件 浏览:813
变频冰箱压缩机一直工作 浏览:469
php编译后怎么加密 浏览:426
python程序代码最简单 浏览:129
文件夹粘贴文件黑屏一下 浏览:861
服务器wait什么意思 浏览:265
java电子商务系统源码 浏览:502
单片机还要涨多久 浏览:260
苹果app上的小锁怎么设置 浏览:538
瑞萨单片机为什么不出名 浏览:801
阿里云服务器性能优化安全测试 浏览:372
linux组命令 浏览:967
怎么推广app让人去下载和注册 浏览:548
空调压缩机启动电容用大一点的行吗 浏览:396
mac命令行查找文件 浏览:177
按键精灵安卓版怎么停止线程 浏览:73
九爷妾不从命压缩包下载 浏览:462
单片机and 浏览:687