如何将 LIne Draw Characters 写入终端

How can I write LIne Draw Characters to a terminal

我目前正在开发一个服务于文本终端的服务器程序。它的预期目标客户是 xterm。 我正在尝试 "draw lines" 围绕一个矩形部分,类似于旧 TUI 模式程序中的 window 帧。 当然有大于 127 的 ASCII 字符定义那些画线字符,但是通过 telnet 连接只有 7 位是相关的,所有大于 127 的字符在客户端屏幕上都是默认块。 我知道设置其他图形集(如 G0、G1 等)的 VT100 控制序列以及如何通过 ESC)x 和 ESC(x 以及单字符代码 SI 和 SO 激活它们。问题是,none 这些似乎有预期的效果。

到目前为止,我最大的成功是发送

ESC, ')', '0', 所以

之后发送数据时,我仍然得到正常的字符。然而,一旦我终止连接并且 xterm 程序(我使用 MobaXTerm)打印它的断开消息,该消息现在出现在选定的图形字符集中。

将终端切换到图形模式然后绘制相应图形字符的最佳方法是什么?

也许你不能:我记得 MobyXterm 基于 PuTTY,其开发人员决定在进行 UTF-8 编码时不支持 VT100 画线。当设置环境变量 NCURSES_NO_UTF8_ACS 时,ncurses 库有一个解决此问题的方法——但这对您正在执行的转义序列的直接写入没有帮助。