java utf8 编码 - 字符,字符串类型
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中是如何工作的。根据 java doc 对 char char 的定义:char 数据类型是单个 16 位 Unicode 字符。
这是否意味着java中的char类型只能支持那些可以用2个字节表示的unicode字符,而不是超过这个?
在上面的程序中,为该字符串分配的字节数为3,但在返回第一个字符的第三行(java中为2个字节)中,可以容纳一个长度为3个字节的字符?这里真的糊涂了?
任何关于java/一般概念的良好参考将不胜感激。