如何告诉 Minicom 将 CP437 字符转换为 Unicode 等效字符?

如何告诉 Minicom 将 CP437 字符转换为 Unicode 等效字符?

我正在使用 Raspberry Pi(运行 Raspbian [基于 debian])作为TCP/IP 上的 UTF-8/SSHCP437/TTY 通过 RS232/DB9。RS232 端是一个黑盒子,我们根本无法修改。

最初我使用screen中间件,它似乎可以自动动态执行 CP437 -> Unicode。但是,这要求我允许 SSH 用户首先登录到完整 shell,然后运行screen,这对于目标用户来说是一个过于高级/技术性的过程。

这就是为什么我正在寻找minicom非常适合用作登录 shell 的。他们无法进入 bash shell,退出 minicom 也会关闭 SSH 会话,这对于目标用户角色来说更加用户友好,并且不需要花费大量精力来锁定用户访问权限。

问题在于,它minicom没有像 一样正确地将 CP437 样式边框转换为 Unicode screen。它反而将其转换为lqqqk边框(PuTTY 术语)。

请参阅下面的示例:

这就是screen所做的(看起来很完美,使用unicode)

┌──────────────────────────────────────────────────────────────┐
│Platform Magnet Supervisory "MGN 07/14/03 V1.0.0 551-373"     │
│                                                              │
├ command ─┬ syntax ─────┬ function ───────────────────────────┤
│ Run      │ R           │ Run process display                 │
│ Time     │ T hh:mm:ss  │ set clock time                      │
│ Date     │ D dd/mm/yy  │ set date                            │
│ Start    │ S hh:mm:ss  │ set start time                      │
└──────────┴─────────────┴─────────────────────────────────────┘

这是minicom无需任何特殊设置即可完成的操作(lqqqkPuTTY 称之为边框)

lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
xPlatform Magnet Supervisory "MGN 07/14/03 V1.0.0 551-373"     x
x                                                              x
t command qw syntax qqqqqw function qqqqqqqqqqqqqqqqqqqqqqqqqqqu
x Run      x R           x Run process display                 x
x Time     x T hh:mm:ss  x set clock time                      x
x Date     x D dd/mm/yy  x set date                            x
x Start    x S hh:mm:ss  x set start time                      x
mqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

这就是minicom允许直接传递值的一些设置的作用

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄڿ
³Platform Magnet Supervisory "MGN 07/14/03 V1.0.0 551-373"     ³
³                                                              ³
à command Ä syntax ÄÄÄÄÄ function ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄô
³ Run      ³ R           ³ Run process display                 ³
³ Time     ³ T hh:mm:ss  ³ set clock time                      ³
³ Date     ³ D dd/mm/yy  ³ set date                            ³
³ Start    ³ S hh:mm:ss  ³ set start time                      ³
ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

第三个示例实际上可以通过额外的步骤使用。我可以告诉 SSH 客户端 (PuTTY) 使用类似 CP437 的字体边框看起来大约 95% 正确。但是,这并不理想,因为强制字体极大地限制了用户自定义终端(或使用复制/粘贴)的能力。最终用户也可能使用没有字体选项的 SSH 客户端。

我更希望将minicom扩展的 ascii (128-255) 字符也转换为 94XX Unicode 字符,类似于如何screen做到的。我读过ncurses代表这样做screen,但minicom它自己做事吗?

我尝试了几乎所有minicom配置,但都无法正常工作。包括-t使用各种 TERM 值(例如ibmpclinux等)。我看过很多帖子,人们似乎使用 之类的技巧让它工作export NCURSES_NO_UTF8_ACS=1,但我的运气并不好。

另外,我见过很多截图,其中内置菜单minicom是使用 CP437/ACS 边框绘制的,但出于某种原因,我的 minicom 版本甚至不能很好地绘制它们,而是使用“穷人”边框(PuTTY 术语)而不是这些边界

+-----[configuration]------+
| Filenames and paths      |
| File transfer protocols  |
| Serial port setup        |
| Modem and dialing        |
| Screen and keyboard      |
| Save setup as dfl        |
| Save setup as..          |
| Exit                     |
| Exit from Minicom        |
+--------------------------+

似乎有些像这样可以解决问题,但是这也会阻止我们以 shell 形式运行 Minicom,因此我暂时排除了这种可能性。

真的没什么主意了,但这似乎是可能的!任何帮助或提示都非常感谢!

相关内容