Насколько я знаю, когда JRE выполняет приложение Java, , строка будет рассматриваться как массив байтов USC2 внутри. В wikipedia можно найти следующий контент.Внутренняя кодировка символов Java 7
Первоначально изначально использовался UCS-2 и добавлена поддержка дополнительного символа UTF-16 в J2SE 5.0.
С новой версией Java (Java 7), Какова его внутренняя кодировка символов?
Есть ли вероятность, что Java начнет использовать UCS-4 внутренне?
История не совсем проста: вы * можете * делать UTF-32 в Java. Посмотрите на мой пост ниже. Или Google для 'JSR-204', или' Java UTF-32 support'. – paulsm4
Вы можете, конечно, кодировать и декодировать строку в Java в/из UTF-32. Но это не означает, что Java использует UTF-32 для внутреннего представления строк. –
UTF-32 - это кодировка символов, которая превращает последовательность символов в последовательность байтов. Он не говорит о том, как Java будет внутренне работать с Unicode. Я сомневаюсь, что Java когда-либо перейдет от UCS-2 для его кодирования, что отлично подходит для большинства применений.Самая большая опасность - если есть кодовая страница UCS-4, то большинство Java-кода ошибочно обрабатывают длину строки как количество символов. Сомнительно, что он правильно перебирал строку и обрабатывал бы кодовые страницы. – locka