Как читать данные из файла с юникодом в Java?

У меня есть файл tsv, и он содержит данные Unicode, такие как «Пэр Лагерквист получил Нобелевскую премию по физике». Но, читая его на Java, я получаю такой вывод, как «Пюр Лагерквист получил Нобелевскую премию по физике».

Я использую следующий фрагмент кода для чтения файла

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF-8"));
while ((st = br.readLine()) != null) {
    System.out.println(st);
}

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

Silvio Mayolo 07.11.2018 15:04

Боковое примечание: с Java 11 вы должны использовать try(var br = Files.newBufferedReader( Paths.get(fileName))) { /* your code using the BufferedReader */ } для чтения файла в кодировке UTF-8 с помощью BufferedReader.

Holger 07.11.2018 15:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
48
1

Ответы 1

Я предполагаю, что вы используете Intellij Idea. В этом случае установите кодировку консоли

-Dfile.encoding=UTF-8

В Windows отредактируйте файл idea.exe.vmoptions и добавьте указанную выше строку.

Подробнее см. это.

Другие вопросы по теме