对于开发,我ResourceBundle
用来直接从 IDE 中的资源目录中读取 UTF-8 编码的属性文件(我在该文件的 Eclipse 文件属性中设置)(native2ascii 用于生产方式),例如:
menu.file.open.label=&Öffnen...
label.btn.add.name=&Hinzufügen
label.btn.remove.name=&Löschen
由于在使用非 ASCII 字符时会导致字符编码出现问题,我认为我会很高兴:
ResourceBundle resourceBundle = ResourceBundle.getBundle("messages", Locale.getDefault());
String value = resourceBundle.getString(key);
value = new String(value.getBytes(), "UTF-8");
好吧,它确实适用于小写的德语变音符号,但不适用于大写的变音符号,ß
也不起作用。这是读取getString(key)
的值和转换后的值new String(value.getBytes(), "UTF-8")
:
&Löschen => &Löschen
&Hinzufügen => &Hinzufügen
&Ã?ber => &??ber
&SchlieÃ?en => &Schlie??en
&Ã?ffnen... => &??ffnen...
最后三个应该是:
&Ã?ber => &Über
&SchlieÃ?en => &Schließen
&Ã?ffnen... => &Öffnen...
我想我离真相并不太远,但我在这里错过了什么?
谷歌发现了类似的东西,但仍未得到答复。
编辑:更多代码