Каково внутреннее представление Java для String? Модифицированная UTF-8? UTF-16?

Я просмотрел внутреннее представление Java для строки, но у меня есть два материала, которые выглядят надежными, но непоследовательный.

Один из них:

http://www.codeguru.com/cpp/misc/misc/multi-lingualsupport/article.php/c10451

и там написано:

Java использует UTF-16 для внутреннее текстовое представление и поддерживает нестандартную модификацию UTF-8 для сериализации строк.

Другой:

http://en.wikipedia.org/wiki/UTF-8#Modified_UTF-8

и там говорится:

Tcl также использует ту же модифицированную UTF-8[25]. ] как Java для внутреннего представления данных Unicode, но использует строгий CESU-8 для внешних данных.

Модифицированная кодировка UTF-8? Или UTF-16? Который правильный? И сколько байтов использует Java для символа в памяти?

Пожалуйста, дайте мне знать, какой из них правильный и сколько байтов он использует.

46
задан Johan 28 October 2013 в 00:37
поделиться