Испанский символ - ошибка отображения в свойствах Java - PullRequest
2 голосов
/ 23 ноября 2011

Когда я обрабатываю файл свойств с испанскими символами ó и é, символы отображаются как ?. Я пробовал разные способы исправить это, но все равно не получилось:

  • Я пытался использовать \uxxxx
  • Я пытался использовать InputStreamReader с кодировкой UTF-8
  • Я попытался преобразовать строку в байты, а затем создать новую строку из этих байтов:

    new String( val.getBytes("UTF-8"), "UTF-8")
    

Ничего не сработало. Что мне делать дальше, чтобы решить эту проблему? Японцы и русские все еще в порядке.

1 Ответ

4 голосов
/ 23 ноября 2011

Файл свойств должен быть в правильной кодировке. По умолчанию некоторые IDE, такие как eclipse, сохраняют содержимое с использованием CP1252, но вам требуется файл с именем UTF-8. Это также требуется для вашего кода Java.

Если вы попытаетесь использовать символы \ uxxxx, но ваше приложение по умолчанию работает с CP1252, преобразование escape-кода приведет к неправильному символу.

Если вы используете InputStreamReader для принудительного чтения как UTF-8, но ваш код и / или ваш файл не используют поддержку UTF-8, это приведет к плохому символу.

Если вы используете UTF-8 преобразование строки, но ваш исходный код - CP1252, у вас должна быть та же проблема.

Соответствующий предыдущий ответ об исходном коде: Если исходный код сохранен в формате UTF-8

  • Notepad ++ Имеет меню для просмотра формата файла и изменения его в меню «Формат». Вы должны просматривать файл так, как если бы он открывался другими форматами, или конвертировать файл в другие форматы, такие как « UTF-8"
...