Java использует массив символов для хранения String, а String использует UTF-16 для хранения символов.Как Java печатает строку?
Для моего убунту:
$ echo $LANG
en_US.UTF-8
Если кодирование моего исходного файла Java является UTF-8, а основное содержание:
System.out.println("你好");
Значение 你好
является hello
. С UTF-8, 你
и 好
им нужно хранить 3 байта. С UTF-16 им нужно 2 байта.
Когда 你好
напечатан на экране, являются ли данные, отправленные Java в ОС Linux, закодированные с помощью UTF-8 или UTF-16?