我正在使用 Debian Buster 的一个衍生版本,名为阿姆比安。它是基于 ARM 的设备的发行版,我将其与 Nanopi Neo Air 一起使用。
Armbian 拥有基于 Curses 的全屏 TUI 应用程序。当我通过 SSH(和 Minicom)连接到此设备并运行这些应用程序(例如 )时armbian-config
,会正确显示:
screen
当我通过串行控制台使用(GNU screen 4.7)连接,并TERM
设置为screen
、screen-256color
、linux
等任何内容时,我仍然可以在命令行上正确获取 ANSI 颜色:
但,当我运行这些基于curses的TUI应用程序时,我得到乱码屏幕:
我设置的值没有任何区别TERM
。终端也变得无响应,我必须重置设备才能使其再次工作。
作为一些附加信息,像 VIM 这样的程序运行得很好。所以,我很困惑。
这可能是什么原因?我该如何解决这个问题?
答案1
假设您提到的“串行控制台”指的是 minicom,则 minicom 可能无法使用 UTF-8(这是典型的语言环境设置将告诉 ncurses 使用:请参阅手册页讨论NCURSES_NO_UTF8_ACS
)。如果您使用 POSIX 语言环境(即 LC_ALL=C),则 ncurses 将不会尝试使用 Unicode 线条绘制,并且通常符合 minicom 的限制。某些非 UTF-8 语言环境(例如)en_US
也可能有效。
vim 不会尝试绘制线条,因此您不会注意到其中的问题(尽管某些插件可能会这样做,但问题没有提到这方面)。