schl3ck
schon lange hier
Hey Leute
ja, ich schon wieder. Ich bekomms einfach nicht hin, dass auf Linux im LXTerminal die UTF-8 Zeichen mittels ncurses korrekt angezeigt werden.
Wenn ich zum Beispiel "\u2588" oder "\xE2\x96\x88" mittels cout ins Termial schreibe, wird mir "█" angezeigt, was auch so sein soll. Allerdings mittels ncurses und printw(const char*) oder addch(char) bekomm ichs nicht hin. Für Locale habe ich UTF-8 und de_AT eigestellt, falls das was damit zu tun hat.
Wenn ich folgenden Code Ausführe, wird angezeigt, dass das Terminal nicht das Wide-Character-Set unterstützt (WACS_S1 ist ja ein Zeichen daraus).
Auf meinem Windows PC unterstützt CMD das Wide-Character-Set und zeigt mit PDCurses (mit addch und printw) es auch richtig an, allerdings mit cout alleine muss ich "cout << char(219);" verwenden, also das Extended ASCII Set von MS-DOS bzw. IBM PC.
Weiß denn jemand, was ich da machen kann? Oder gibt es da einfach keine Lösung? (Was mir etwas komisch vorkommen würde, da es ja mit cout direkt funktioniert...).
Danke schon einmal
ja, ich schon wieder. Ich bekomms einfach nicht hin, dass auf Linux im LXTerminal die UTF-8 Zeichen mittels ncurses korrekt angezeigt werden.
Wenn ich zum Beispiel "\u2588" oder "\xE2\x96\x88" mittels cout ins Termial schreibe, wird mir "█" angezeigt, was auch so sein soll. Allerdings mittels ncurses und printw(const char*) oder addch(char) bekomm ichs nicht hin. Für Locale habe ich UTF-8 und de_AT eigestellt, falls das was damit zu tun hat.
Wenn ich folgenden Code Ausführe, wird angezeigt, dass das Terminal nicht das Wide-Character-Set unterstützt (WACS_S1 ist ja ein Zeichen daraus).
Code:
#include <iostream>
using namespace std;
int main()
{
#ifdef WACS_S1
cout << "Das Terminal unterstützt wide characters.";
#else
cout << "Das Terminal unterstützt nicht wide characters.";
#endif
return 0;
}
Auf meinem Windows PC unterstützt CMD das Wide-Character-Set und zeigt mit PDCurses (mit addch und printw) es auch richtig an, allerdings mit cout alleine muss ich "cout << char(219);" verwenden, also das Extended ASCII Set von MS-DOS bzw. IBM PC.
Weiß denn jemand, was ich da machen kann? Oder gibt es da einfach keine Lösung? (Was mir etwas komisch vorkommen würde, da es ja mit cout direkt funktioniert...).
Danke schon einmal