以扩展ASCII码显示字符(Ubuntu)

我需要打印ASCII扩展的字符部分,即类似于:

char p = 219; // a rectangle printf("%c\n", p); 

但是,在shell中,它不显示正确的字符..我可以做什么来看到矩形?

谢谢

您将不得不使用支持扩展ASCII的虚拟终端。 Ubuntu中的默认终端是gnome-terminal。 您必须将gnome-terminal中的字符编码从UTF-8更改为ISO-8859-2或使用其他终端。 例如Konsole 。

使用libiconv将CP-1252或ISO-8859-1或任何8位字符集转换为UTF-8; 像这样的东西:

 #include <iconv.h> iconv_t cd = iconv_open("utf-8", "cp-1252"); iconv(cd, &inbuf, sizeof(inbuf), &outbuf, sizeof(outbuf)); // <- psuedocode, change to meet your needs 

对我来说,一个工作代码页是IBM850 。 使用konsole ,在配置文件配置,高级选项卡,您可以选择代码页。 我能够以这种方式显示扩展ASCII(用于IPMI BIOS访问)。