在所有平台和编码下,char'A'总是65吗?

时间:2013-08-12 19:15:22

标签: java encoding

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

3 个答案:

答案 0 :(得分:6)

是:Java中的char类型使用UTF-16编码(请参阅JLS 3.2),其中“A”具有数字(十进制)代码65.

答案 1 :(得分:3)

是。 Java specified使用Unicode,因此'A'是U+0041,值为65。

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

答案 2 :(得分:1)

在java中,每个char字面都遵循Unicode标准。 Unicode标准的Java默认实现是UTF-16。它的最小值为'\ u0000'(或0),最大值为'\ uffff'(或65,535(含))。
因此A始终具有数值65(UTF-16中的U + 0041)。