Юникод в ресурсах Jar - PullRequest
       10

Юникод в ресурсах Jar

3 голосов
/ 24 августа 2009

У меня есть текстовый файл Unicode (UTF-8 без BOM) в банке, который загружается как ресурс.

URL resource = MyClass.class.getResource("datafile.csv");
InputStream stream = resource.openStream();
BufferedReader reader = new BufferedReader(
    new InputStreamReader(stream, Charset.forName("UTF-8")));

Это хорошо работает в Windows, но в Linux, похоже, неправильно читается файл - символы с акцентом выходят из строя. Я знаю, что на разных машинах могут быть разные кодировки по умолчанию, но я даю правильную кодировку. Почему бы не использовать его?

Ответы [ 2 ]

2 голосов
/ 24 августа 2009

Часть для чтения выглядит правильно, я все время использую это в Linux.

Я подозреваю, что вы использовали кодировку по умолчанию где-то при экспорте текста на веб-страницу. Из-за разной кодировки по умолчанию в Linux и Windows вы увидели другой результат.

Например, вы используете кодировку по умолчанию, если вы делаете что-то подобное в сервлете,

PrintWriter out = response.getWriter();
out.println(text);

Вам нужно специально написать в UTF-8, как это,

 response.setContentType("text/html; charset=UTF-8");
 out = new PrintWriter(
    new OutputStreamWriter(response.getOutputStream(), "UTF-8"), true);
 out.println(text);
1 голос
/ 24 августа 2009

Интересно, поможет ли обзор UTF-8 в Linux . Может быть проблема с настройкой.

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