printf()
-
Böses Encoding
Das kommt auf die verwendete Code-Page an.
-
öm mit frage Zeichen im Gesicht Windows 7
die console
-
Modus1984 schrieb:
öm mit frage Zeichen im Gesicht Windows 7
die consoleDer hier:
Ich schreibe auf der Console immer ae und dergleichen.Sonst kannst du mal bei Wikipedia nachschauen unter Codepage
Die 437 und 1252 sind die wichtigen für dich.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ok ich hab die Tabellen überflogen und kam zu dem Schluss das es zu viele Standards gibt
also hab ich mir unten den Code gebastelt
um heraus zu feinden wo zb ö liegt
in meinem falle dezimal auf der 148 ,hexadezimal auf der 94
wie pack ich das jetzt unter printf rein
ich will nicht unbedingt für jeden Umlaut ne variable anlegen es wird doch auch was einfaches geben oder
#include <stdio.h> #include <stdlib.h> int main() { int schleife=0; while (255>=schleife) { printf("[%c][%x][%d]\n",schleife,schleife,schleife); schleife++; } return 0; }
-
printf("H\x94h\94");
\xHEXADEZIMALER_ZAHLENWERT
-
ok nach dem kramen in 3 Reverenzen zu printf hab ich jetzt das hier gefunden
die hier hat dann bei mir na Lampe leuchten lassen
http://home.fhtw-berlin.de/~junghans/cref/FUNCTIONS/escape.htmlprintf("\x84");
was in meinem falle ein ä auf den schirm zaubert
danke an alle so ist die suche erheblich kürzer ausgefallen als erwartet
Edit ich bin zu langsam :p
danke
-
Hallo Modus1984,
mit CharToOem() kannst Du diese Konvertierung automatisch von Windows durchführen lassen:
http://msdn.microsoft.com/en-us/library/ms647473(VS.85).aspxalso im Quelltext ganz normal leserlich die Sonderzeichen äöüß usw. schreiben und trotzdem in der Konsole die richtigen Buchstaben lesen können.
HTH,
Martin
-
Modus1984 schrieb:
öm mit frage Zeichen im Gesicht Windows 7
die consoleFür Windows gibts da die Konvertierfunktion CharToOem.
-
ich gehe mal davon aus das das dann nicht mehr mit linux läuft.
ohne abzustürzen
ich programmiere imom auf Windows der finale Test ist aber auf Linux
so weis hinter her eigentlich immer ob ich Mist geschrieben habe
zumindest was den c Standard angeht
ok Erwartung gemäß werden die äöüs auf linux nicht korrekt dargestellt
aber das ist halb so wild
-
äöü kannst du unter linux einfach so mit puts/printf raushauen (war jedenfalls bei mir so vor ein paar jahren), da wird m.w.n intern utf8 kodiert naja und unter windows tuts bei mir ein
setlocale(LC_ALL, "German");
das klappt mit dem multibytezeichensatz sowie mit unicode(visual studio).
bei älteren windows versionen musst du glaub ich noch die funktion setconsolecodepage bemühen.
und locale.h einbinden nicht vergessen.