Wie ResourceBundles mit Unicode Zeichen korrekt einlesen?

Status
Nicht offen für weitere Antworten.

oliver1974

Aktives Mitglied
Hallo zusammen...

Folgendes Problem. Ich habe hier mehrere Resource-Bundles (wegen Mehrsprachigkeit).

Wenn ich spasseshalber ein ResourceBundle etwas unorthodox mit

Code:
br = new BufferedReader(new InputStreamReader(new FileInputStream( f ),"UTF-8"));

einlese, bekomme ich bei den Sonderzeichen (Umlaute usw.) nur diese "escaped Unicode"
Zeichen wie sie wohl in Resource Bundles verwendet werden..... Nicht den "Klartext"..
Also statt:

"Hier würde ich jetzt eine neue Datei anlegen"

kommt

"Hier w\u00fcrde ich jetzt eine neue Datei anlegen"


Das müsste doch aber eigentlich klappen?

Ich hab es schon ganz Stumpf mit
Code:
br = new BufferedReader(new FileReader(f));

versucht, aber weiß bis heute nicht, ob dass standardmäßig richtig konvertieren würde...
(es funktioniert bei den Resource Bundles zumindest eh nicht.)

Wo habe ich da den Denkfehler?

EDIT: Aaaargh.. ich glaube, ich ahne es....

Das Resource Bundle ist zwar in UTF-8 kodiert... aber durch das Escapen der Unicode-Zeichen ist
das eh wieder "tünnef..." er liest ganz korrekt die einzelnen UTF-8 chars ein.. die wieder zusammengenommen einen Umlaut öder ähnliches ergeben. Hmm.

Wie kriege ich das denn wieder konvertiert... Gibts da was "von Haus aus" oder muss ich dazu
noch was extra schreiben?
 

Marco13

Top Contributor
Was genau du jetzt meinst, weiß ich zwar nicht, aber schmeiße mal die
string.getBytes(charset)
und
String s = new String(bytes, charset)
Methoden in den raum. Ansonsten genauer beschreiben, wordum es geht - am besten mit Test-Beispiel.
 

oliver1974

Aktives Mitglied
Also, der Ansatz scheint nicht zu funktionieren...

Kurios...ich poste noch mal ein paar CodeSnippets.. ich glaube, das Problem liegt schon darin, wie ich die Zeile aus dem ResourceBundle einlese (mit BufferedReader(FileReader), wenn ich das jetzt aus der Erinnerung richtig habe...)

Wenn ich einen String mit "new String("..")" neu erstelle, und innerhalb
des Konstruktors eine Zeichenkette mit escaped Unicode Sequenzen
habe.. dann klappt das einwandfrei. aber nicht wenn die Zeichenkette im Konstruktor aus meiner Datei kommt.. obwohl die oberflächlich gesehen genau gleich aussieht.

Ich habe schon versucht mal nachzusehen, wie das innerhalb der ResourceBundle Klasse gemacht wird (denn immerhin kommen die dort per getString(..) geholten Werte ganz korrekt an), aber das Ding ist nicht so ganz trivial und verzweigt nachher in irgendwelche abstrakten Methoden, deren Implementierungen ich noch nicht finde..

Wie gesagt, ich poste mal ein Code-Snippet um das Problem nachvollziehen zu können.
 

oliver1974

Aktives Mitglied
Okay, zwar noch kein Code-Snippet, aber zumindest habe ich folgendes herausgefunden:

Wenn ich über einen FileInputStream gehe, und darauf
eine Property-Instanz aufbaue, scheint es zu gehen..
im konkreten Falle würde mir das auch reichen, da ich eh nur ein
bestimmtes Property aus dem ResourceBundle brauche.

Muss aber noch auf einem anderem System gegenchecken.

EDIT: Die beschriebene Vorgehensweise klappt soweit gut..

Also: Erst einen FileInputStream erzeugen (der auf das ResourceBundle verweist), dann
auf der Instanz des FileInputStreams basierend eine Property - Instanz erzeugen...
Und damit dann mit den entsprechenden Methoden auslesen, dann klappt es auch mit dem escaped
Unicode..

Code:
                // Achtung: TRY-CATCH hier ausgespart !!!

                // Parameter "f" im Aufruf des FileInputStream-Konstruktors 
                // ist eine "File" Instanz die auf das ResourceBundle verweist.

                FileInputStream fis = new FileInputStream(f);                    
                
                Properties properties = new Properties();
                properties.load(fis);

                fis.close();
                
               String property = properties.getProperty("IDENTIFIER");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U ResourceBundles auf vollständigkeit prüfen Allgemeine Java-Themen 2
G Einige Fragen zu ResourceBundles Allgemeine Java-Themen 2
G Internationalisation: Problem mit ResourceBundles Allgemeine Java-Themen 4
oliver1974 Wo ResourceBundles ablegen? Allgemeine Java-Themen 3
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
J Unicode Darstellung mit 5 chars Allgemeine Java-Themen 9
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
L UTF8 to Unicode Allgemeine Java-Themen 9
mrBrown Unicode-WhiteSpaces aus String entfernen Allgemeine Java-Themen 14
S Input/Output Unicode Umwandlung Allgemeine Java-Themen 2
H Unicode ausgeben ohne Umwandlung - geht das? Allgemeine Java-Themen 3
L Problem bei ausführbarer jar Datei mit Unicode-Zeichen Allgemeine Java-Themen 4
J Unicode als String Allgemeine Java-Themen 6
R kopieren von Dateien und Verzeichnissen - UNICODE? Allgemeine Java-Themen 4
P JavaDoc und Backslashes: "Invalid unicode" Allgemeine Java-Themen 3
H Exponenten mit UNICODE Allgemeine Java-Themen 4
N Encoding Unicode Textfile Allgemeine Java-Themen 5
M Unicode 06 (Arabic) Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
P Unicode-Problem: Griechische Buchstaben Allgemeine Java-Themen 11
J Unicode: cmd parameter (main args); exec params; filenames Allgemeine Java-Themen 2
Daniel_L ASCII in UniCode umwandeln? Allgemeine Java-Themen 14
Luma Unicode Steuerzeichen von druckbaren Zeichen trennen Allgemeine Java-Themen 10
L unicode-zeichen in ein txt-File schreiben Allgemeine Java-Themen 3
L unicode Allgemeine Java-Themen 5
F Unicode zu ASCII konvertieren Allgemeine Java-Themen 5
I Eignung eines Zeichensatzes zur Kodierung eines Unicode-Str. Allgemeine Java-Themen 3
D Zeilenweises auslesen aus einer Unicode CSV-Datei Allgemeine Java-Themen 7
U unicode oder was? Allgemeine Java-Themen 14
R Abwärtskompatibilität des Unicode Allgemeine Java-Themen 2
R Unicode (Kyrillisch) Allgemeine Java-Themen 15
byte Unicode Sonderzeichen Allgemeine Java-Themen 2
B Unicode für Kreuz gesucht Allgemeine Java-Themen 2
H Unicode Darstellung in Java, spezielles Zeichen gesucht Allgemeine Java-Themen 4
S Unicode-Zeichen erstellen/ Kodierung Allgemeine Java-Themen 4
G Unicode file auslesen Allgemeine Java-Themen 11
C Unicode für Promille-Zeichen Allgemeine Java-Themen 5
U Unicode char kyrillisch Allgemeine Java-Themen 10
G Unicode eines Zeichens ermitteln Allgemeine Java-Themen 5
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
S Zeichen | in regex Allgemeine Java-Themen 8
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Checkstyle 100 Zeichen pro Zeile Allgemeine Java-Themen 11
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
Master3000 Komisches Zeichen als Ausgabe in der Konsole Allgemeine Java-Themen 20
M Warum gibt es Unterschiedliche Kommentar Zeichen Allgemeine Java-Themen 15
N Überprüfung ob ein bestimmtes Zeichen <1 mal vorkommt Allgemeine Java-Themen 2
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
G Übermittlung zusätzlicher ASCII-Zeichen bei Übertragung von Dateiinhalt mit Xmodem - JAVA Allgemeine Java-Themen 9
R Wie bekomme ich das Zeichen 'digit' an vorderster Stelle Allgemeine Java-Themen 4
S [Regex] Nur diese Zeichen beachten Allgemeine Java-Themen 1
Bluedaishi Zeile um zeichen erweitern Allgemeine Java-Themen 9
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
Xge Replace x Zeichen aus String Allgemeine Java-Themen 2
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen &#8203; Allgemeine Java-Themen 3
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
T xls-Datei per Apache Commons CsvParser einlesen UTF-8 Zeichen russische Zeichen Allgemeine Java-Themen 2
AssELAss String jeweils nach x Zeichen Zeilenumbruch Allgemeine Java-Themen 1
DStrohma Input/Output KeyEvent nur verarbeiten wenn es ein "sichtbares" Zeichen ist? Allgemeine Java-Themen 1
B In Java String ein + Zeichen Allgemeine Java-Themen 4
AssELAss Zeilenumbruch immer nach bestimmtem Zeichen Allgemeine Java-Themen 1
J Anzahl der Zeichen bei Eingabe begrenzen Allgemeine Java-Themen 5
V Tastendruck für UTF-8 Zeichen emulieren Allgemeine Java-Themen 4
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
C Hex Zeichen ersetzen durch leer Zeichen Allgemeine Java-Themen 5
R Besondere Zeichen in Dateinamen Allgemeine Java-Themen 4
B Alt-Griechisch Zeichen in Dateien Allgemeine Java-Themen 2
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
M Fehlende Zeichen beim Drucken mit PDFBox Allgemeine Java-Themen 10
J String nur erste Zeichen vergleichen Allgemeine Java-Themen 6
C Variablen $-Zeichen in String ersetzen Allgemeine Java-Themen 3
S String Zeichen für Zeichen vergleichen Allgemeine Java-Themen 4
S String in Double - letztes Zeichen fehlt Allgemeine Java-Themen 4
A Erstes Zeichen im String "toUpperCase"n Allgemeine Java-Themen 11
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
cedi int Zahl in ein ASCII zeichen umwandeln und dieses in ein externes Textfenster schreiben Allgemeine Java-Themen 6
K String: alle X Zeichen Zeilenumbruch Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
Zettelkasten Aus String bestimmtes Zeichen herausfinden Allgemeine Java-Themen 19
M Asterisk in String ("Egal-Zeichen") Allgemeine Java-Themen 4
V Chinesische Zeichen Escapen Allgemeine Java-Themen 4
I Teilweise falsche Darstellung jap. Zeichen im JEditorPane mit RTFEditorKit aus RTF-Datei Allgemeine Java-Themen 5
D Datei mit allen Ascii Zeichen Allgemeine Java-Themen 2
R Unsichtbare Zeichen Allgemeine Java-Themen 7
U Namen von Klassen haben $-Zeichen Allgemeine Java-Themen 5
P RegEx und $-Zeichen als Literal Allgemeine Java-Themen 5
neonfly Anzahl Zeichen pro Zeile auf der Konsole Allgemeine Java-Themen 8
C Strings zwischen 2 Zeichen auslesen Allgemeine Java-Themen 7
A Zeichen beim Eingeben in ein DOS-Fenster nicht anzeigen? Allgemeine Java-Themen 3
F Hexcode von ASCII Zeichen erhalten Allgemeine Java-Themen 2
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
V Dateien mit &-Zeichen im Namen öffnen Allgemeine Java-Themen 13
N String in einzelne Zeichen zerlegen Allgemeine Java-Themen 8
M Problem mit Zeichen aus einer Datei auslesen Allgemeine Java-Themen 2
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
G Tschechische Zeichen in XML-Antwort Allgemeine Java-Themen 22
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
N Xor Warum kommt Flasches Zeichen in Java Allgemeine Java-Themen 36
S Stringarray splitten an unbekanntem Zeichen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben