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
ヨ
请帮助我理解这个问题。试图理解Java中如何使用UTF8编码。根据Java文档定义的char:char数据类型是单个16位Unicode字符。
这是否意味着Java中的char类型只支持那些可以用2个字节表示且不超过2个字节的Unicode字符?
在上面的程序中,为该字符串分配的字节数为3,但第三行返回的第一个字符(在Java中为2个字节)可以容纳一个长度为3个字节的字符?我真的很困惑。
如有任何关于Java /通用概念的好参考资料,将不胜感激。