開発のため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...
最後の 3 つは次のようになります。
&Ã?ber => &Über
&SchlieÃ?en => &Schließen
&Ã?ffnen... => &Öffnen...
私は真実からそれほど離れていないと思いますが、ここで何が欠けているのでしょうか?
Google は似たようなものを見つけましたが、それは未回答のままでした。
編集:もう少しコード