我有一个属性文件(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
答案 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表示,由资源包类读取。