java utf8 encoding - char, typy łańcuchów
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
}
}
wydajność:
3
ヨ
Pomóż mi to zrozumieć. Próbuję zrozumieć, jak działa kodowanie utf8 w Javie. Jak w definicji java docchar: Typ danych char jest pojedynczym 16-bitowym znakiem Unicode.
Czy to znaczy, że typ char w java może obsługiwać tylko te znaki Unicode, które mogą być reprezentowane przez 2 bajty i nie więcej niż to?
W powyższym programie, liczba bajtów przydzielonych dla tego ciągu wynosi 3, ale w trzeciej linii, która zwraca pierwszy znak (2 bajty w java), może zawierać znak o długości 3 bajtów? naprawdę zdezorientowany?
Wszelkie dobre odniesienia dotyczące tej koncepcji w Javie / General byłyby naprawdę mile widziane.