我们使用 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'