кодировка 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
}
}
output:
3
ヨ
Пожалуйста, помогите мне понять это. Попытка понять, как работает кодировка utf8 в Java. Согласно определению java doc char char: The char data type is a single 16-bit Unicode character.
Означает ли это, что тип символа в java может поддерживать только те символы Юникода, которые могут быть представлены 2 байтами и не более того?
В приведенной выше программе количество байтов, выделенных для этой строки, равно 3, но в третьей строке, которая возвращает первый символ (2 байта в java), может содержаться символ длиной 3 байта? действительно смущен здесь?
Любые хорошие ссылки относительно этой концепции в java / general будут очень благодарны.