Schlüsselworte ANSI Konverter liefert UTF-8

DiekleineRatte77

Neues Mitglied
Hallo liebe Java Community,
ich bin gerade dabei ein Programm zu schreiben was mir in der Firma UTF-8 Dateien in eine
andere Art umschreibt und danach auch nicht mehr als UTF-8 speichert sondern als ANSI.
Das Problem ist das es bei mir zuhause funktioniert und das auf allen PCs die ich besitze nur in der Firma auf dem Rechner nicht. Dort kommt jedes mal UTF-8 raus und nicht ANSI?
Wenn ich aber in die Output Datei gehen kann ich es Manuel auf ANSI umstellen also mit einem Text Editor. Nur mit der Software geht es nicht bin jetzt schon mit Python und Java nicht weiter gekommen.
Das Betriebssystem was ich nutzte ist Windows 10.

Freue mich über jede Hilfe 🙁 , denn ich weiß nicht mehr weiter.

Danke schon mal im Voraus.

[CODE lang="java" title="Hier der Java Teil der die Datei in ANSI schreibt" highlight="6"]public void writeFile(String content, String path, values object){
if (path==""){
return;
}
try{
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path+".txt"), "Cp1252"));
try {
out.write(content);
} finally {
out.close();
}

/*PrintWriter file = new PrintWriter(new FileWriter(path));
file.print(content);
file.flush();
file.close();*/
}catch (Exception Error){
object.setFail(Error.toString());
}
}[/CODE]
 
Eine Datei hat kein Encoding, sondern nur Bytes.

Wenn du die Datei aufmachst, hängst es vom Programm ab, welches Encoding der verwendet zur Anzeige. Sprich es liegt eher am Programm in der Firma, dass das hart auf UTF-8 eingestellt ist.
 
Eine Datei hat kein Encoding, sondern nur Bytes.

Wenn du die Datei aufmachst, hängst es vom Programm ab, welches Encoding der verwendet zur Anzeige. Sprich es liegt eher am Programm in der Firma, dass das hart auf UTF-8 eingestellt ist.
Ähm, die Bytes in der Datei können aber natürlich den gewünschten String in einem bestimmten Encoding abgebildet haben. Daher hat eine Datei so gesehen ein Encoding (was einfach Umgangssprache ist und bedeutet, dass ein Text in einer Datei mit einem speziellen Encoding abgebildet wurde).

Und da ist dann jetzt wirklich die Frage, was das eigentliche Problem ist. Was erwartet das Programm in der Firma? Und was genau machst du? Also beim Lesen.

Der OutputStreamWriter ist auf jeden Fall beim Schreiben soweit korrekt - Du schreibst die Dateien im Cp1251 Format. Aber ist es das Format, das Du wirklich willst/brauchst? (1251 wird für kyrilische Zeichen verwendet meine ich). Aber ok - so lange es vor allem um die ASCII Zeichen geht, wird das funktioneren.) Ich hätte da eher etwas wie StandardCharsets.ISO_8859_1 erwartet.

Aber wie gesagt: Das sollte die Konvertierung machen, so der String richtig ist! Aber wenn die Datei schon falsch eingelesen wird, dann hast Du da natürlich ein Problem. In welchem Format ist die original Datei? Dem InputStreamReader kannst Du auch ein Encoding mitgeben.
Wenn ein System so konfiguriert ist, dass ein problematisches Charset verwendet wird, dann wird da Dein Programm beim Lesen ggf. auch schon die Probleme haben, so dass Du das Format mit angeben musst.
 
Ähm, die Bytes in der Datei können aber natürlich den gewünschten String in einem bestimmten Encoding abgebildet haben. Daher hat eine Datei so gesehen ein Encoding (was einfach Umgangssprache ist und bedeutet, dass ein Text in einer Datei mit einem speziellen Encoding abgebildet wurde).
Klar, aber es ist nirgendwo in einer Text-Datei gespeichert "Ich bin UTF-8" oder ich bin "ISO-8859-15". Sondern anhand der Bytes die drin sind, macht ein Editor ein educated Guess (Weil gewisse Kombinationen halt nur in bestimmten Zeichensätzen sinnvoll sind).

Aber - diese Logik steckt nicht in der Datei, sondern im Editor. Und dort würde ich daher eher ansetzen.
 
Klar, aber es ist nirgendwo in einer Text-Datei gespeichert "Ich bin UTF-8" oder ich bin "ISO-8859-15". Sondern anhand der Bytes die drin sind, macht ein Editor ein educated Guess (Weil gewisse Kombinationen halt nur in bestimmten Zeichensätzen sinnvoll sind).
Ja, das ist natürlich richtig. Da hatte ich dann Deine Aussage missverstanden.
 

Zurück
Oben