java.util.properties метод getProperty возвращает ноль для строки UTF-8 - PullRequest
3 голосов
/ 04 октября 2011

У меня проблема с получением локализованного значения (строка UTF-8) из файла свойств.
Вот что я сделал ..

//properties file containing
//name=हिन्दी
public static void main(String[] args)
{
  File f = new File("path\\to\\properties\\file");
  Properties p = new Properties();
  try
   {
     p.load(new InputStreamReader(new FileInputStream(f),Charset.forName("UTF-8")));
   }
  catch(IOException iox) {}
  System.out.println(p.getProperty("name")); //outputs null
  System.out.println(p.toString()); //outputs  { name= हिन्दी }
}

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Если последняя строка действительно выдает name= हिन्दी, то похоже, что с ключом String в файле свойств что-то не так;возможно, включает в себя какой-то невидимый пробел или один из символов «имя» - это не обычная латинская буква, а нечто похожее на это.Взгляните на файл свойств в шестнадцатеричном редакторе.

0 голосов
/ 04 октября 2011

Ваша проблема здесь:

catch(IOException iox) {}

это называется "взаимный отказ". Никогда не делай этого. Ваш код, который загружает свойства из файла, терпит неудачу и выдает исключение, и вы даже не знаете об этом. Добавьте e.printStackTrace() и переместите код, который печатает значения свойств, в блок try/catch. Смотрите исключение и исправьте ошибку. Я считаю, что ваш путь к файлу неверен, поэтому вы получите FileNotFoundException или, возможно, у вас нет прав доступа к этому файлу

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