2
因此,我正在研究一個本地化示例以及與ResourceBundle
一起使用的一般方法,並且所有內容都不支持UTF-8,因此我正在轉向Properties
。屬性文件中的Java西班牙編碼
我已經得到它的實際屬性很好,但在西班牙文件,它不喜歡的口音。我用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控制檯設置嘗試了它,並且它顯示了小的黑色鑽石而不是字符。命令提示符可以改變運行一個命令,但它可能並不總是工作。另外它需要你改變字體。我將不得不看看這個片段。 – Spedwards