ANSI-Datei einlesen UND UTF-8-Datei schreiben

Samarek

Aktives Mitglied
Hallo,

ich würde gerne mit Java eine ANSI-kodierte Datei einlesen und als UTF-8-kodierte Datei ausgeben,
kann mir da gerade mal jemand einen Tipp geben?
Kann ja nicht so schwierig sein, nur ich komm grad irgendwie nicht drauf ...
 
Du kannst bei den Streams den Zeichensatz angeben, der verwendet werden soll, also etwa so:
Java:
// hier stand bis eben Schwachsinn
Wobei ich mir jetzt nicht sicher bin, ob ANSI ein gültiger Zeichensatzname ist...

[EDIT]
Schnell ein Beispiel aus dem Internet kopiert und gleich falsch 🙁 Die Streams selbst haben natürlich kein Konzept eines Zeichensatzes. Dafür sind ja die Writer da. Vergiss das oben und mach es so:
Java:
final OutputStream fileOut = new FileOutputStream("Filename");
final Writer writer = new BufferedWriter(new OutputStreamWriter(fileOut, "UTF8")));
[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
Java:
FileInputStream fis = null;
InputStreamReader isr = null;
try {
    fis = new FileInputStream("file.txt");
    isr = new InputStreamReader(fis, "Cp1250");
    //...

Java:
PrintWriter pw = null;
try {
   pw = new PrintWriter( "file2.txt", "UTF-8" );
 
ok, danke
das war schonmal sehr hilfreich, kannte ich auch schon (wie erwartet) kam nur nicht mehr drauf.
[EDIT]So habe ich es jetzt gemacht
Code:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(eingangsDatei), "Cp1250"));
(...)
PrintWriter pw = new PrintWriter(ausgangsDatei, "UTF8");
pw.write(ausgabe);
[/EDIT]
Das Ergebnis zeigt er (Notepad++) mir jetzt aber als "ANSI as UTF-8" an, kann mir jemand verraten warum er das tut?
Durch diese ganzen Kodierungsgeschichten blicke ich noch nicht so richtig durch.
 
Zuletzt bearbeitet:

Zurück
Oben