ASCII Codepages: In Windows switchen
-
Hi!
In Windows kann man zwischen den Tastaturlayouts hin und her switchen. Dann müssten doch auch die Codepages ausgewechselt werden? In Notepad passiert das nicht: Ich schreibe äö in eine Textdatei, schließe sie, wechsele zu Englisch und öffne die Datei erneut. Immer noch äö drin. Eigentlich müssten doch jetzt die eckigen Klammern drin stehen? Warum ist das so? Ist in Windows schon alles unter der Haube Unicode?
Ich bin momentan hinter einem komischen Bug her. Wir führen auf dem Rechner eines polnischen Kollegen unser Programm aus. Als erstes ließt das Tool einige Environment Variablen aus and A) stellt sie in der Textbox dar und
schickt diese Daten uns per eMail zu.
Das komische: In der Textbox bei dem Rechner des Polen steht nur Müll, in der eMail kommen aber die echten polnischen Wörter an. Also das Wort "szczegóły" kommt richtig in der eMail an, in der Textbox soll aber sowas wie "szczegó3y" stehen.Meine Vermutung: Je nach ausgewählten Tastaturlayout wird ein andere Codepage geladen. Die WindowsTextbox interpretiert die letzten 128 ASCII Zeichen je nach Codepage anders.
-
Hättet ihr euer Programm mal lieber gleich Unicode-Kompatibel gemacht. Wenn ihr abwärtskompatibel bleiben wollt hätte die WinAPI sehr schön die TEXT-Markos inklusive TCHAR angeboten.
Codepage ist im System nicht mehr änderbar, weil afaik Unicode. In der Konsole kannst du noch mit "chcp NUMMER" die Codepage ändern.
MfG SideWinder
-
SideWinder schrieb:
In der Konsole kannst du noch mit "chcp NUMMER" die Codepage ändern.
Du weisst nicht zufällig auch noch, welche CP man einstellen muss, um z.B. mit
echo äöü > c:\umlaute.txt
tatsächlich auch Umlaute in der Textdatei zu erhalten?
-
Auswendig nicht, aber ich kanns dir morgen sagen, etwas Geduld
MfG SideWinder
-
Aber wenn ich in eine Datei mit Notepad ein einzelnes "ä" schreibe ist diese nur ein Byte lang. Was würde passieren wenn ich sie auf einem französischem System anzeigen lasse? Dann würde das ä doch anders interpretiert werden?
-
Hallo
Ja du bekommst ein anderes Zeichen angezeigt, möglicherweise auch nichts weil in anderen Codepages für diesen Wert kein anzeigbares Zeichen hinterlegt ist.
bis bald
akari
-
chcp 1252 copy "C:\MäineDätöi.txt" "D:\ööö.txt" echo äöu > C:\umlaute.txt
Achtung: In der Konsole wirds falsch angezeigt, in der Datei stehen dann aber die richtigen Zeichen...
MfG SideWinder
-
Danke!