当字符集为ISO-8859-1时,如何在Linux控制台上发出框绘制字符?

fjnneemd  于 11个月前  发布在  Linux
关注(0)|答案(1)|浏览(127)

我如何输出这些字符?这听起来不可能,但它不是。dpkg-reconfigure ca-certificates可以做到这一点。
我写了这个寻找字符,但找不到它们(在ISO-8859-1中的孔中出现了几个方块绘图字符,但这不是一个可用的集合):

#!/usr/bin/tcc -run

#include <stdio.h>

int main()
{
    for (int i = 0; i < 256; i++) {
        switch (i) {
        case 0: case 8: case 9: case 10: case 11: case 12: case 13: case 27:
            printf(". %3d ", i);
            break;
        default:
            printf("%c %3d ", i, i);
            break;
        }
        if ((i % 16) == 15) printf("\n");
    }
}

字符串
我以为答案会是printf("...");,但我不知道。

mnowg1ta

mnowg1ta1#

我找到了一个适用于北美PC的答案。

printf("\033(U");

字符串
切换到ROM字符集,这里是CP 437,出现图形字符。

printf("\033(B");


转换为ISO-8859-1。
如果使用这些终端序列,它们不会改变已经显示的字符,因此我们甚至可以在输出上混合字符集。

相关问题