длина кодировки java-символов всегда должна быть х раз 2? - PullRequest
0 голосов
/ 20 ноября 2018

Java внутренняя кодировка для символов UTF-16 не так ли?В то время как все ASCII используют 2-байтовую кодировку, тогда я ожидаю:

     String h="hello"; 
     System.out.println(h.codePointCount(0,h.length())); 
     System.out.println(h.length()); 

для печати 10 и 5, но на самом деле это печатает 5, 5.

Где я ошибся?

1 Ответ

0 голосов
/ 20 ноября 2018

Попробуйте

String h="hell?";
System.out.println(h.codePointCount(0,h.length())); 
System.out.println(h.length());

напечатано 5, 6.

'?' представлено двумя кодовыми единицами, каждая из которых 'h', 'e', ​​'l', 'l '- на единицу.

И примерно UTF-16 : «Кодирование переменной длины, поскольку кодовые точки кодируются одной или двумя 16-битными кодовыми единицами ...»

...