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]
 

LimDul

Top Contributor
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.
 
K

kneitzel

Gast
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.
 

LimDul

Top Contributor
Ä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.
 
K

kneitzel

Gast
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.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Dezimal nach ansi kodieren Allgemeine Java-Themen 2
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
P XML to XML Konverter Allgemeine Java-Themen 5
S Konverter Postscript -> Grafik gesucht Allgemeine Java-Themen 2
8u3631984 Argument Captor liefert NULL zurück Allgemeine Java-Themen 2
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
A Datentypen Long.valueOf liefert kein "L" am Ende Allgemeine Java-Themen 3
T Variablenübergabe liefert immer null Allgemeine Java-Themen 13
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
Q GregorianCalendar Methode add liefert komische Werte Allgemeine Java-Themen 3
T Datentypen ArrayUtils.indexOf( ... ) liefert -1 obwohl Wert scheinbar enthalten ist Allgemeine Java-Themen 15
T SimpleDateFormat.parse() liefert falschen Tag Allgemeine Java-Themen 2
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
I newInstance() liefert null zurück Allgemeine Java-Themen 4
Z new Date() liefert falsche Uhrzeit Allgemeine Java-Themen 12
S Newton-Verfahren liefert nur 1 Wert Allgemeine Java-Themen 3
J Liefert new URL(String) gecachte Webseiten? Allgemeine Java-Themen 15
S HashMap containsKey liefert immer false zurück Allgemeine Java-Themen 15
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
A md5 liefert unterschiedliche Testsummen? Allgemeine Java-Themen 4
S FOP liefert fehlerhafte PDF Allgemeine Java-Themen 13
S instanceof liefert true, aber cast funktioniert nicht! Allgemeine Java-Themen 6
MasterEvil File.createTempFile liefert nur kurzen Pfad mit Tilde Allgemeine Java-Themen 3
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
N contains(.) liefert nicht erwartetes Ergebnis Allgemeine Java-Themen 3
H JNI: loadLibrary liefert UnsatisfiedLinkError Allgemeine Java-Themen 2
J Base64 Kodierung liefert korrupte Dateien Allgemeine Java-Themen 3
S ´Locale.getDefault() liefert en Allgemeine Java-Themen 10
C ImageIO die read-Methode liefert mir ein null- Wert zurück Allgemeine Java-Themen 10
S aFile.delete() liefert false - Gründe ? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben