如何使用Java获取属性文件Korea(ko)中的值

时间:2016-08-25 10:32:00

标签: java

我有一个属性文件(test_ko.properties),如下所示:

day=\uC77C
nominal=\uAE08\uC561
month=\uC6D4

要获取上面文件的内容,我使用Resource Bundle,如下所示:

bundle = ResourceBundle.getBundle("test", new Locale("ko"));

String day = bundle.getString("day");
String nominal = bundle.getString("nominal");
String month = bundle.getString("month");

System.out.println("#Day : " + day );
System.out.println("#Nominal : " + nominal );
System.out.println("#Month : " + month );

当我运行它时,我得到以下结果:

#Day : ????
#Nominal : ????????
#Month : ????

如何让结果看起来应该如此:

#Day : \uC77C
#Nominal : \uAE08\uC561
#Month : \uC6D4

1 个答案:

答案 0 :(得分:0)

如果你有apache-commons库,请使用StringEscapeUtils.escapeJava

或者

String uescape(String s) {
    StringBuilder sb = new StringBuilder(s.length() * 6);
    for (char ch : s.toCharArray()) {
        if (32 <= ch && ch < 128) {
            sb.append(ch);
        } else {
            sb.append(String.format("\\u%04X", (int)ch);
        }
    }
    return sb.toString();
}

这当然是完整Unicode字符串的ASCII表示,由资源包类读取。