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-разрядный символ Юникода.
Означает ли это, что char тип в java может поддерживать только те символы unicode, которые могут быть представлены с 2 байтами и не более?
В приведенной выше программе количество байтов, выделенных для этой строки, равно 3, но в третьей строке, которая возвращает первый символ (2 байта в java), может содержать символ длиной 3 байта? действительно запутался здесь?
Любые хорошие ссылки на эту концепцию в java/general были бы действительно оценены.