ResourceBundles und UTF-8?

  • Themenstarter Gelöschtes Mitglied 9001
  • Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gelöschtes Mitglied 9001

Gast
Hallo,

ich nahm an, daß die properties-Dateien mit den Strings in der jeweiligen Landessprache UTF-8-kodiert sein können/müssen, weil Java ja ohnehin mit UTF-8 arbeitet und gerade bei Internationalisierung UTF sinnvoll ist.
Offenbar jedoch werden die Strings nicht als UTF-8-kodiert eingelesen, so daß Umlaute und Sonderzeichen nicht richtig dargestellt werden.
Wie kann man denn die Kodierung einstellen?

Danke für alle Tipps!
 
B

Beni

Gast
Die allmächtige, immerzukonsultierende API meint bei PropertyResourceBundle, dass man Unicode Escpaces verwenden soll, wenn die Charaktere nicht "ISO-8859-1"-konform sind.

Die API meint auch, dass PropertyResoruceBundles mit ISO-8859-1-Dateien rechnen, und nicht mit UTF-8 Dateien :wink:
 
G

Gelöschtes Mitglied 9001

Gast
Die API ist bei mir immer "griffbereit" auf dem Desktop. Nun ja, manchmal überliest man eben doch was.

Ist das nicht reichlich inkonsequent von Sun, gerade an dieser Stelle NICHT UTF-8 zu verwenden, da, wo es doch gerade um Internationalisierung geht?
 
R

Roar

Gast
java liest textdateien immer im standard encoding vom os ein, wenn du nix anderes angegeben hast. und intern wird utf-16 verwendet. wie kommst du auf utf8 ?
 
G

Gelöschtes Mitglied 9001

Gast
Roar hat gesagt.:
... intern wird utf-16 verwendet. wie kommst du auf utf8 ?
Weiß ich auch nicht ;)

Aber ich bleibe dennoch bei meiner Ansicht, daß UTF-Kodierung als Standard an dieser Stelle das Sinnvollste wäre.
 
B

Beni

Gast
Das stimmt nur zum Teil Roar. Kannst im Quellcode vom PropertyResourceBundle nachlesen, dass da nicht UTF-8 verwendet wird: z.B. hats da hübsche Stellen wie
Code:
//The line below is equivalent to calling a 
                    //ISO8859-1 decoder.
	            c = (char) (0xff & inByteBuf[inOff++]);
 
G

Gelöschtes Mitglied 9001

Gast
Und was macht man nun, wenn slawische Sprachen mit vielleicht sogar kyrillischen Buchstaben verwendet werden sollen?
 
B

Beni

Gast
Man schreibt eine Klasse die von ResourceBundle (oder noch einfacher: von ListResourceBundle) erbt, da die "getBundle"-Methode immer zuerst versucht eine Klasse mit dem Bundle-Namen zu laden.

Die eigene ResourceBundle-Klasse kann natürlich verwenden, was immer sie gerne möchte.

Die API hat da ein grosses Beispiel direkt bei ResourceBundle...
 

Lim_Dul

Top Contributor
Alternativ einen Editor schreiben, der die Properties files über die Klasse Properties anlegt. Der sorgt dafür, dass die Sonderzeichen richtig kodiert werden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ResourceBundles in Jar-Files Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben