char unter Linux



  • Hi!

    Ich versuche mich gerade ein wenig mit der Linuxprogrammierung in C++. Beim Ausführen eines einfachen Programms, das lediglich die Werte von char mit ihren jeweiligen Zeichen ausgibt, habe ich bemerkt, dass je nach Terminalemulator die Belegung anders ist. Während unter xterm der ASCII-Code ausgegeben wird, verwendet gnome-terminal diverse Zeichen desselbigen mit anderer Belegung. Die Codes 16-25 werden beispielsweise für diverse Blockgrafikzeichen verwendet. Strings hingegen werden anscheinend in UTF-8 kodiert. Weiß jemand warum dies so ist?

    MFG M.O.D.

    PS: Ich verwende Fedora Core 5.



  • M.O.D. schrieb:

    Strings hingegen werden anscheinend in UTF-8 kodiert.

    Ich weis nicht, was du sagen willst, aber die Strings in C sind nicht UTF-8 kodiert. GTK+, welches vom GNOME Terminal benutzt wird, verwendet intern UTF-8. Vielleicht meinst du das.



  • Ob die Strings utf8 kodiert sind, hängt von deiner Locale-Einstellung ab (schau dir mal die Umgebungsvariablen LC_ALL und LANG an). Die ASCII-Zeichen 16-25 sind ja Steuerungssignale. Das ist also wirklich von der Terminal-Emulation abhängig, wie reagiert wird.

    ProgChild schrieb:

    M.O.D. schrieb:

    Strings hingegen werden anscheinend in UTF-8 kodiert.

    Ich weis nicht, was du sagen willst, aber die Strings in C sind nicht UTF-8 kodiert.

    wieso nicht?



  • rüdiger schrieb:

    wieso nicht?

    in c gibt's dafür char und wchar_t. komprimiertes unicode so wie utf-8 kann c nicht von alleine.


Anmelden zum Antworten