public class UTF8 {
public static void main(String[] args){
String s = "ヨ"; //0xFF6E
System.out.println(s.getBytes().length);//length of the string
System.out.println(s.charAt(0));//first character in the string
}
}
输出:
3
ヨ
请帮助我理解这一点。试图了解 utf8 编码在 java 中是如何工作的。根据 char char 的 java doc 定义: char 数据类型是单个 16 位 Unicode 字符。
这是否意味着java中的char类型只能支持那些可以用2个字节表示的unicode字符而不是更多?
在上面的程序中,为该字符串分配的字节数为 3,但是在返回第一个字符(java 中为 2 个字节)的第三行中可以容纳一个 3 个字节长的字符?真的很困惑吗?
在 java/general 中有关此概念的任何良好参考将不胜感激。