SecureCRT 无法显示某些字符

SecureCRT could not display some character

由于某些原因,当我 ssh 进入 Linux 服务器时,SecureCRT 显示错误的 character/coding。

例如以下来自man route

Gateway
              The gateway address or ’*’ if none set.

使用不同的终端软件(ZOC终端)

Gateway
              The gateway address or ’*’ if none set.

ZOC 终端字符集是 ANSI/Windows/Latin 我和我为 SecureCRT 尝试过,但没有任何区别。

有什么想法吗?

这是 UTF-8 字符和 Linux "locale" 的问题。

对于现代 Linux 命令 locale charmap 通常应该给你 UTF-8 其他值可能有效但不会给你所有字符例如: ☎ ☐ ☑ ☒

这两个似乎都将终端设置为ISO-8859-1,区别在于ZOC向主机发送了一个'LANG=en_GB'环境变量; SecureCRT 还没有。

您最好的解决方案是将您的终端模拟器设置为解释 UTF-8 字符集,然后如果可能的话让模拟器将变量 LANG=fr_FR.UTF-8(或类似的)发送到 Linux。

如果您找不到如何在您最喜欢的模拟器中设置语言环境,您可以在登录后进行设置

$ export LANG=de_AT.UTF-8

显然,您需要根据您的位置和偏好选择正确的 LANG 设置。

尽管主机设置正确,但我仍然遇到 SecureCRT 的问题。通过设置 Session Options...-> Terminal -> Appearance -> Character Encoding from "Default" to "UTF-8".

解决了这个问题