Как получить правильную кодировку? - PullRequest
1 голос
/ 30 марта 2009

У меня есть файл utf-8, который я хочу прочитать и отобразить в моей java-программе.

В консоли затмения (stdout) или в разгаре я получаю знаки вопроса вместо правильных символов.

BufferedReader fr = new BufferedReader(
                      new InputStreamReader(
                      new FileInputStream(f),"UTF-8"));
System.out.println(fr.readLine());

inpuStreamReader.getEncoding() //prints me UTF-8

У меня обычно нет проблем с отображением акцентированных букв ни на консоли Linux, ни в Firefox и т. Д.

Почему это так? Я болен от этого: /

спасибо за помощь

Ответы [ 3 ]

2 голосов
/ 30 марта 2009

Я не эксперт по Java, но похоже, что вы создаете UTF-8 InputStreamReader с файлом, который не обязательно является UTF-8.

См. Также: Java: Как определить правильную кодировку кодировки потока

0 голосов
/ 30 марта 2009

Есть несколько параметров, когда система должна отображать символы Unicode -

  • Первое, что приходит на ум, - это кодирование входного потока или буфера, которые вы уже выяснили.
  • Следующим в списке являются возможности приложения в Unicode - Eclipse поддерживает отображение символов Unicode в выводе консоли; с обходным решением :).
  • Последнее, что у меня на уме - это шрифт, используемый в выводе на консоль - не все шрифты поставляются с глифами для отображения символов Юникода.

Обновление

Не отображение символов Unicode, скорее всего, связано с тем, что Cp1252 используется для кодирования символов в выводе консоли. Это можно изменить, посетив конфигурацию Run приложения - она ​​отображается на вкладке Common конфигурации времени выполнения.

0 голосов
/ 30 марта 2009

Похоже, консоль Eclipse не обрабатывает символы UTF-8, и / или шрифт, настроенный для этой консоли, не поддерживает символы Unicode, которые вы пытаетесь отобразить.

Возможно, вам удастся заставить это работать, если вы настроите Eclipse для ожидания символов UTF-8, а также убедитесь, что используемый шрифт может отображать те символы Unicode, которые закодированы в вашем файле.

Со страницы Eclipse 3.1 Новое и достойное внимания Страница:

Вы можете настроить консоль на отображать вывод с использованием символа кодировка отличается от стандартной используя настройки кодирования консоли на Общая вкладка запуска конфигурации.

Что касается Swing, я думаю, вам нужно выбрать правильный шрифт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...