我在两个不同的系统上得到了不同的结果,并且不知道为什么。
DatePicker mDatePicker = (DatePicker) findViewById(R.id.date_picker);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
int headerId = Resources.getSystem().getIdentifier("day_picker_selector_layout", "id", "android");
final View header = mDatePicker.findViewById(headerId);
header.setBackgroundColor(getResources().getColor(android.R.color.black));
}
在两个系统上,输入包含Properties prop = new Properties();
prop.load(new ByteArrayInputStream(input)); //input is byte[]
。
在我的测试系统上,道具包含"var=\\u00C4\\u00DC\\u00D6\\u00E4\\u00FC\\u00F6"
。 (这就是我想要的)
在另一个系统道具上包含"var=ÄÜÖäüö"
。这是"var=\xC4\xDC\xD6\xE4\xFC\xF6"
十六进制,但为什么input
会这样做?遗憾的是,我对其他系统配置一无所知。
有人知道原因吗?
答案 0 :(得分:3)
Java .properties
文件使用ISO-8859-1
(Latin-1
)编码,而不是UTF-8
。必须使用Unicode转义字符输入所有非Latin-1字符,例如\uHHHH
。
另一种方法是使用XML
格式的属性,即UTF-8
。