Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Gespeichert hatte ich sie einmal mit Notepad und testweise auch mit eclipse als UTF-8.
So versuche ich sie zu lesen:
[Java] BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D:\\Arabic.txt")), "UTF-8"));
String s;
while ((s = br.readLine()) != null)
System.out.println(s);[/code]
Die Ausgabe sieht allerdings so aus:
Code:
???????
Was mache ich falsch? Laut vielen internet Beispielen sollte es eigentlich funktionieren...
Mal davon abgesehen, dass der Thread schon etwas alt ist:
@Bernstein: Die Zeichenkodierung (bzw. der Zeichensatz), die du zur Ausgabe in den Standardausgabestrom (System.out) verwendest, stimmt wahrscheinlich nicht mit der Zeichenkodierung der Konsole überein.
Mal davon abgesehen, dass der Thread schon etwas alt ist:
@Bernstein: Die Zeichenkodierung (bzw. der Zeichensatz), die du zur Ausgabe in den Standardausgabestrom (System.out) verwendest, stimmt wahrscheinlich nicht mit der Zeichenkodierung der Konsole überein.
Was ein Zeichensatz ist, weiß ich.
Aber was Standartausgabestrom jetzt von Konsole unterscheidet, ist mir schleierhaft.
Außerdem ist mein Programm um einiges größer, die Ausgabe wird zusätlich noch in einen StringBuffer gespeichert und später an eine GUI weitergegeben. Dort erscheinen dann genau die gleichen Zeichen.
Außerdem ist mein Programm um einiges größer, die Ausgabe wird zusätlich noch in einen StringBuffer gespeichert und später an eine GUI weitergegeben. Dort erscheinen dann genau die gleichen Zeichen.
Ich denke schon... Ich habe ein "normales" Text-Dokument erstellt, worin sich Umlaute befinden.
Das ganze kompliere ich inzwischen über Netbeans.
ich frage mich, was da schief läuft.
das problem ist wie gesagt windows selbst ...
CMD.exe verwendet CP850 ... also müsste man System.out mit nem Charset CP850 überschreiben um halbwegs zu hoffen eine richtige ausgabe zu bekommen ... oder man versucht CMD.exe selbst in einen andren zeichensatz zu schalten ... was aber bei UTF-8 zum absturz führt ...
dann verwendet windows selbst noch Win-1251 (oder auch ISO-8859-1) ... der sich noch mal sowohl von CP850 als auch UTF-8 unterscheidet ...
da java intern aber in der regel mit UTF-8 arbeitet ... von windows aber an UTF-8 inputstreams nur Win1251 müll gelifert bekommt ... und UTF-8 outputstreams auf ner console im CP850 nur müll ergeben muss man die entsprechenden streams vorher mit charsets codieren damit java damit auch richtig umgehen kann ...
wie gesagt : unter unix kein problem ... denn da arbeitet fast alles (mit ausnahme einiger spezieller shells) mit UTF-8 ... und da fühlt sich java nun mal wohl ...
Ich habe mich jetzt erst mal daran gemacht, mein Dokument mit Hilfe meines Programms zuerst abzuspeichern in UTF-8 und DANN erst wieder auszulesen. Das war zwar so etwas wie "blind" kodieren, hat aber funktioniert. Jetzt weiß ich auch, warum