txt-Datei auslesen: Codierung bestimmen?



  • Ich bin gerade dabei ein Programm zu schreiben, dass txt-Dateien ausliest. Das funktioniert auch soweit ganz gut. Doch leider habe ich keine Ahnung wie ich mit Hilfe von Java bestimmen kann, ob die Codierung ANSI, Unicode, Unicode Big Endian oder UTF-8 ist.

    Kann mir da jemand weiterhelfen?



  • geht nicht, zumindest nicht einfach so...

    du kannst ausprobieren, ob die ersten paar Bytes gültige Multibytesequenzen ergeben und entsprechend decodieren. Schlägt das fehl, gehts mit den 8bit-Kodierungen weiter. Da einfach das erstbeste nehmen, das passen könnte

    es gibt einen englischen Satz, der zufälligerweise gültige Multibyte-Zeichen ergibt. Die Folge: gängige Texteditoren interpretieren die Datei fälschlicherweise als utf16 bzw -32



  • Danke für die schnelle und kompetente Antwort!

    Eine weitere Frage habe ich jetzt noch:
    Ich bin gerade dabei, Markierungen wie [heading], [subheading], [text] in die txt-Dateien einzubauen und anhand dieser den Inhalt der Datei auf bestimmte Art weiter zu bearbeiten.

    Wenn ich nun mit der readLine()-Methode von BufferedReader die erste Zeile meiner Textdatei auslese, dann ist das Ergebnis nicht "[heading]" sondern "* [heading]" oder so ähnlich. Sieht aus wie ein Punkt, der auf halber Höhe platziert ist.

    Ist das ein Seitenanfangszeichen oder so? Denn wenn ich die nachfolgenden Zeilen auslese, so beginnen diese nicht mit diesem Zeichen...


Anmelden zum Antworten