3

是否总是 char ch = 'A'有独立于平台的值 65?我知道从中获取字节String取决于平台,但我不确定如何 - 使用哪种编码(或者是否有一些编码在起作用) - java将字符文字转换为数值。

4

3 回答 3

6

是:charJava 中的类型使用 UTF-16 编码(参见JLS 3.2),其中“A”的数字(十进制)代码为 65。

于 2013-08-12T19:20:19.270 回答
3

是的。Java 被指定使用 Unicode,所以 'A' 是U+0041,值为 65。

当您尝试将字符或字符串(它们是 16 位代码点的序列)转换为字节序列时,编码就会发挥作用——这可以通过多种不同的方式完成。其中许多将“A”表示为值 65 的单个字节,但很多都没有。

于 2013-08-12T19:21:52.560 回答
1

在 java 中,每个 char 文字都遵循 Unicode 标准。Unicode 标准的Java 默认实现是 UTF-16。它的最小值为“\u0000”(或 0),最大值为“\uffff”(或 65,535,包括在内)。
所以A总是有数值65(UTF-16 中的 U+0041)。

于 2013-08-12T19:24:47.100 回答