2015-05-26 2 views
2

Итак, я работаю над примером локализации и обычным способом делать это с ResourceBundle, и все, что не поддерживает UTF-8, кажется, что я перехожу к Properties.Java Spanish Encoding in Properties File

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

Выход:

íHola! 
┐C¾mo estßs? 
íAdi¾s! 

Ожидаемый результат:

¡Hola! 
¿Cómo estás? 
¡Adios! 

Свойства файла:

greetings = ¡Hola! 
farewell = ¡Adiós! 
inquiry = ¿Cómo estás? 

Код:

import java.util.*; 
import java.io.*; 

public class Test{ 

    public static void main(String[] args) throws IOException { 
     String language; 
     String country; 

     if (args.length != 2) { 
      language = new String("en"); 
      country = new String("GB"); 
     } else { 
      language = new String(args[0]); 
      country = new String(args[1]); 
     } 

     String file = String.format("lang_%s_%s.properties",language,country); 

     InputStream utf8in = Test.class.getClassLoader().getResourceAsStream(file); 
     Reader reader = new InputStreamReader(utf8in, "UTF-8"); 
     Properties props = new Properties(); 
     props.load(reader); 

     System.out.println(props.getProperty("greetings")); 
     System.out.println(props.getProperty("inquiry")); 
     System.out.println(props.getProperty("farewell")); 
    } 

} 

Я только что провел около 40 минут читать все, что мог найти, и они были либо точно так же, как то, что у меня есть сейчас или немного разные, и при попытке, произвел те же результаты.

Может кто-нибудь, пожалуйста, скажите мне, как я могу получить ожидаемый результат?

+0

Я смог воспроизвести его. Он отлично работает в Eclipse с настройкой консоли UTF-8. К сожалению, я не мог понять, как изменить консоль Windows на UTF-8. Интересно, что «System.console(). Writer(). Println (props.getProperty (« greetings »)); отлично работает на консоли Windows. Может быть, это помогает – Slettal

+0

Я попробовал его в Eclipse с настройкой консоли UTF-8, и он отобразил небольшие черные алмазы вместо символов. Командная строка может быть изменена с помощью команды, но она iffy и не всегда работает. Кроме того, требуется, чтобы вы изменили шрифт. Мне придется посмотреть на этот фрагмент. – Spedwards

ответ

0

В Eclipse я могу воспроизвести проблему. Вот шаги:

  1. Создание проекта Java и установить Text кодировку файла в CP850.
  2. Создать Конфигурации запуска/отладки, Аргументы VM до -Dfile.encoding=ISO8859-1. Подтвердить Кодировка настройка в общей вкладке CP850;
  3. Запустите программу java.

Когда программа java печатает на стандартный вывод, эти символы становятся ISO8859-1 байтами. Эти байты перекодируются с использованием CP850 и отображаются в представлении «Консоль».

Это проблема с конфигурацией. Убедитесь, что Кодирование совпадает с file.encoding текущей программы.