У меня проблемы с чтением дополнительных символов Юникода с использованием Java. У меня есть файл, который потенциально содержит символы в дополнительном наборе (что-нибудь больше, чем \ uFFFF). Когда я настроил свой InputStreamReader для чтения файла с использованием UTF-8, я ожидал, что метод read () будет возвращать по одному символу для каждого дополнительного символа, вместо этого он кажется разделенным на 16-битный порог.
Я видел некоторые другие вопросы о базовых символьных потоках Юникода, но, похоже, ничто не имеет отношения к более чем 16-битному случаю.
Вот несколько упрощенных примеров кода:
InputStreamReader input = new InputStreamReader(file, "UTF8");
int nextChar = input.read();
while(nextChar != -1) {
...
nextChar = input.read();
}
Кто-нибудь знает, что мне нужно сделать, чтобы правильно прочитать файл в кодировке UTF-8, содержащий дополнительные символы?