Hallo,
meine Aufgabe besteht darin, eine UTF-8 codierte Datei einzulesen und bestimmte Vorkommen eines Zeichens darin zu markieren, d.h. die Position der Markierung wird gespeichert.
Um das zu erreichen, lese ich den Inhalt der Datei byteweise in einen String ein und such in diesem String nach dem betsimmten Zeichen.
Nun das Problem:
Das byteweise Einlesen funktioniert bei UTF-8 nur im Bereich der ASCII-Zeichen, da diese 1 zu 1 auf UTF abgebildet werden. Bei anderen Zeichen geht das nicht mehr, da diese in UTF-8 durch 2 oder 3 Bytes codiert werden. Das erkennt aber mein kleiner Algorithmus nicht und ich ermittle in Folge dessen falsche Positionen.
Nun meine Frage: Gibt es eine Möglichkeit, eine UTF-8 codierte Datei in einem Rutsch richtig konvertiert in einen String einzulesen, den ich dann weiterverarbeiten kann
Ich habe in diesem Zusammenhang schon die von DataInput bereitgestellte Methode readUTF() ausprobiert, doch diese funktioniert nur, wenn die Daten vorher mit der Methode writeUTF() in die Datei auch geschrieben werden. ;(
Vielen Dank für jeden Tipp!
Grüße,
Crai
meine Aufgabe besteht darin, eine UTF-8 codierte Datei einzulesen und bestimmte Vorkommen eines Zeichens darin zu markieren, d.h. die Position der Markierung wird gespeichert.
Um das zu erreichen, lese ich den Inhalt der Datei byteweise in einen String ein und such in diesem String nach dem betsimmten Zeichen.
Nun das Problem:
Das byteweise Einlesen funktioniert bei UTF-8 nur im Bereich der ASCII-Zeichen, da diese 1 zu 1 auf UTF abgebildet werden. Bei anderen Zeichen geht das nicht mehr, da diese in UTF-8 durch 2 oder 3 Bytes codiert werden. Das erkennt aber mein kleiner Algorithmus nicht und ich ermittle in Folge dessen falsche Positionen.
Nun meine Frage: Gibt es eine Möglichkeit, eine UTF-8 codierte Datei in einem Rutsch richtig konvertiert in einen String einzulesen, den ich dann weiterverarbeiten kann
Ich habe in diesem Zusammenhang schon die von DataInput bereitgestellte Methode readUTF() ausprobiert, doch diese funktioniert nur, wenn die Daten vorher mit der Methode writeUTF() in die Datei auch geschrieben werden. ;(
Vielen Dank für jeden Tipp!
Grüße,
Crai