Итак, я работаю над примером локализации и обычным способом делать это с 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 минут читать все, что мог найти, и они были либо точно так же, как то, что у меня есть сейчас или немного разные, и при попытке, произвел те же результаты.
Может кто-нибудь, пожалуйста, скажите мне, как я могу получить ожидаемый результат?
Я смог воспроизвести его. Он отлично работает в Eclipse с настройкой консоли UTF-8. К сожалению, я не мог понять, как изменить консоль Windows на UTF-8. Интересно, что «System.console(). Writer(). Println (props.getProperty (« greetings »)); отлично работает на консоли Windows. Может быть, это помогает – Slettal
Я попробовал его в Eclipse с настройкой консоли UTF-8, и он отобразил небольшие черные алмазы вместо символов. Командная строка может быть изменена с помощью команды, но она iffy и не всегда работает. Кроме того, требуется, чтобы вы изменили шрифт. Мне придется посмотреть на этот фрагмент. – Spedwards