导航:首页 > 编程语言 > 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宽字符相关的资料

热点内容
vim命令复制 浏览:813
单片机中有pt0吗 浏览:319
程序员科研知乎 浏览:65
图图老师讲数学美国算法 浏览:623
三星s9安全文件夹有啥用 浏览:722
怎么ai捏脸安卓 浏览:278
军命令证书 浏览:534
误删苹果app怎么恢复 浏览:868
如何设置内网服务器IP 浏览:76
马老师的加密通话视频 浏览:745
扫码识价app哪里可以买 浏览:553
wpstopdf转换器 浏览:641
怎么把pdf导入iphone 浏览:567
7z后缀文件解压缩 浏览:906
服务器为什么禁用三叉戟 浏览:936
解压小视频卸妆或化妆 浏览:557
太监程序员 浏览:59
java编译选项包括 浏览:435
安卓手机如何导其他手机的通讯录 浏览:931
离心式压缩机品牌 浏览:169