How to output Unicode?
Simplified problem statement: make a program that outputs the MS-DOS
ASCII table to the console (0x32 - 0x255, without control characters).
I mean the one containing the pseudo-graphic characters - simply
writing chars 128-255 gives me 32 block characters, some math/currency
symbols and then international chars.
Possible solution: use UTF-8?
I searched the web, but all I found is this perl script:
---------------------------------------------------------
#!/usr/bin/perl -w
print "\e\%G"; # select utf-8 mode
for (0x00..0xFF) {
printf "%02X: ", $_;
print chr(0xEF),
chr(0x80 | ($_ >> 6)),
chr(0x80 | ($_ & 0x3F));
print $_ % 8 == 7 ? "\n" : " ";
}
print "\e\%@"; # select iso mode
---------------------------------------------------------
However, it works only when I run it from the TTYs. On Konsole, xterm,
gnome-terminal, it displays block characters. Also, if I use ANSI
sequences (to move the caret, change the text color etc.), weird
glitches appear (even if I turn
utf-8 mode on only to display one character at a time).
So: how is it done correctly?
Reply to: