BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(new FileOutputStream("C:\\test.txt"), "Cp850"));
BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(new FileOutputStream("C:\\test.txt"), "Cp850"));
String sonderzeichen = "29 3r5ß ä-#a. .asd käa#fal #,#ä a #";
bw.write(sonderzeichen);
bw.close();
Nö, ich will z. B. den String "Das ist kein MS-Dos Text denn ä, ö und ü werden Beispielsweise richtig dargestellt" in einen anderen Zeichensatz formatieren z. B. "Das ist MS-Dos Text, denn manche Zeichen werden nicht richtig dargestellt" und den anderen Zeichensatz dann ausgebenRoar hat gesagt.:textarea.setTex(sonderzeichen) ??
java -Dfile.encoding=Cp850 -jar Blah.jar
String s = "Das ist kein MS-Dos Text denn ä, ö und ü werden Beispielsweise richtig dargestellt" ;
String t = "Das ist MS-Dos Text, denn manche Zeichen werden nicht richtig dargestellt";
Bleiglanz hat gesagt.:und versuchst dann, dein Problem genauer zu schildern
Dann hättest du's vieleicht auch lesen sollen :roll:Hobbit_Im_Blutrausch hat gesagt.:Danke für die Mühe, da war ich aber schon
public static String convertToUTF8(String s) {
String out = null;
try {
out = new String(s.getBytes("UTF-8"));
} catch (java.io.UnsupportedEncodingException e) {
return null;
}
return out;
}
Bleiglanz hat gesagt.:auf rechnern, die nicht ISO-8859-1 oder ISO-8859-15 oder UTF-8 als Default-charset verwenden dürfte diese Mehtode ziemlich absurde veränderungen an deinem String vornehmen
string.getBytes("Zeichensatz");
String str = "äöü+#!2§$§$&%&(&)";
String str2 = "";
try {
str2 = new String(str.getBytes("EUC-KR"));
}
catch (Exception e) {
}
if (!str.equals(str2)) {
System.out.println(str + " != " + str2);
}
else {
System.out.println(str + " == " + str2);
}
Bleiglanz hat gesagt.:nicht plattformunabhängig
Bleiglanz hat gesagt.:bei rechnern mit default EUC-KR: macht sie gar nichts
Bleiglanz hat gesagt.:bei rechnern mit default != EUC-KR: zerstört sie den String unvorhersehbar
String nichtUmgewandelt = "C:\\Hörspiel";
BufferedWriter bw = new BufferedWriter(new FileOutputStream("Erstelle auf den Desktop" + ".bat"));
bw.write(nichtUmgewandelt);
String nichtUmgewandelt = "C:\\Hörspiel";
String umgewandelt = new String(nichtUmgewandelt.getBytes("Cp850");
BufferedWriter bw = new BufferedWriter(new FileOutputStream("Erstelle auf den Desktop" + ".bat"));
bw.write(umgewandelt);
String nichtUmgewandelt = "C:\\Hörspiel";
BufferedWriter bw =
new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("Erstelle auf den Desktop" + ".bat") ,"Cp850"));
Hobbit_Im_Blutrausch hat gesagt.:Bleiglanz hat gesagt.:und versuchst dann, dein Problem genauer zu schildern
Was ist daran so schwer zu verstehen? Ich will doch einfach nur von einem Zeichensatz in einen anderen Zeichensatz umwandeln. Die Zeichen, welche in dem neuen Zeichensatz nicht mehr vorhanden sind, sollen durch die dazugehörigen Zeichen des neuen Zeichensatzes ersetzt werden. Zum besseren Verständnis ein Beispiel wo sowas nützlich ist: Ein Javaprogramm soll eine Batch-Datei schreiben, welche ein Programm in einem Verzeichnis öffnet. Sobald jetzt aber ein ä oder ähnliches im Verzeichnisnamen vorkommt habe ich ein Problem, deshalb muss ich den String vorher in den MS-DOS Zeichensatz umwandeln. Ich weiß, dass ich das in diesem Fall mit einem OutputStreamWriter lösen kann, aber wenn ich die Datei vorher ausgeben will (in einem JTextArea) habe ich ein Problem, weil ich nicht weiß, wie ich das bewerkstelligen kann. Jetzt klarer?