Codepage Windows 2000 Konsole
-
Ich versuche mit den WinaAPI Funktionen "SetConsoleOutputCP()" und "SetConsoleCP()" die momentane Codepage zu ändern. Doch nach der erfolgreichen Änderung kann ich immer noch nicht die Zeichen der ausgewählten Codepages ausgeben, sondern bekomme immer noch das Zeichen wie bei der 850 Codepage. Woran liegt das?
Als Testcodepage habe ich 874 (Thailändisch, http://www.microsoft.com/globaldev/reference/sbcs/874.htm) ausgewählt (ja, es ist Standardmäßig bei Win200 dabei ^^) und versuche das Zeichen 162, also hexadezimal A2, auszugeben:
int CodePage ( void ) { unsigned int OutputCP = GetConsoleOutputCP(); unsigned int InputCP = GetConsoleCP(); printf("Momentane Codepages:\nOutput: %d\tInput: %d\n\n",OutputCP,InputCP); if ( !SetConsoleCP(874) ) { printf("fehler"); return -1; } if ( !SetConsoleOutputCP(874) ) { printf("fehler"); return -1; } OutputCP = GetConsoleOutputCP(); InputCP = GetConsoleCP(); printf("OutputCodepage gesetzt auf %d.\n",OutputCP); printf("InputCodepage gesetzt auf %d.\n",InputCP); printf("\nSchreibe Character 162 der 874 Codepage: "); fputc((char)162,stdout); return 0; }
-
Oder habe ich ein Verständnisproblem und ich kann nicht über die Codepage die Tastaturbelegung ändern?
Beispiel:
Die deutsche Tastatur erkennt die 'ö' Taste als 'ö'
die US-amerikanische Tastatur erkennt dort aber ein ':'Geht das nicht über Codepages?