我需要打印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访问)。