为什么国家(波兰)字符不会通过串行 tty 在屏幕上的 bash 中显示?

为什么国家(波兰)字符不会通过串行 tty 在屏幕上的 bash 中显示?

我们使用 screen 应用程序通过 tty 远程登录设备。当我按下国家组合键时,我只看到屏幕闪烁,没有输出。但是当我在同一个 bash 控制台中启动自己编写的简单应用程序时,我得到:

root#0000:~# ./charcode 
ł
Got char c: C5
Got char c: 82
Got char c: 0A
^C
root#0000:~# 

之后当我这样做时:

root#0000:~# echo -e '\xC5\x82'
ł
root#0000:~#

简单应用程序的源代码是:

#include <stdio.h>

int main()
{
    int c;

    while((c=getchar())!=EOF) {
        printf("Got char c: %02X\n", (unsigned char)c);
    }

    return 0;
}

为什么 bash 中不显示国家(波兰)字符?

答案1

Debian 及其所有衍生产品(例如 ubuntu 等)中存在一个错误 看看这里

要修复此错误:

rm /etc/console-setup/*.gz && setupcon --save-only

这将改变下面的越野车行

/etc/console-setup/cached_setup_keyboard.sh
-loadkeys '/tmp/tmpkbd.iDWdSi' > '/dev/null'
+loadkeys '/etc/console-setup/cached_UTF-8_del.kmap.gz' > '/dev/null'

相关内容