java utf8 encoding - char, tipos de string
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
}
}
saída:
3
ヨ
Por favor me ajude a entender isso. Tentando entender como a codificação utf8 funciona em java. Como por definição de doc java de charchar: o tipo de dados char é um único caractere Unicode de 16 bits.
Isso significa que o tipo char em java só pode suportar os caracteres unicode que podem ser representados com 2 bytes e não mais que isso?
No programa acima, o número de bytes alocados para essa string é 3, mas na terceira linha que retorna o primeiro caractere (2 bytes em java) pode conter um caractere com 3 bytes de comprimento? realmente confuso aqui?
Quaisquer boas referências sobre este conceito em java / geral seriam muito apreciadas.