在 Linux 下使用 telnet 时,“编码”通常涉及两个方面:
下面分情况说明。
telnet 本身不能直接设置编码,它依赖你当前 shell 的 locale。
locale
或
echo $LANG
export LANG=en_US.UTF-8
# 或中文
export LANG=zh_CN.UTF-8
临时生效(仅当前终端):
LANG=zh_CN.UTF-8 telnet host port
永久生效(写入配置文件):
# ~/.bashrc 或 ~/.profile
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
服务器一般看:
LANGLC_ALLTERM你可以在 telnet 登录后执行:
export LANG=zh_CN.UTF-8
如果服务器不支持 UTF-8,可改用:
export LANG=zh_CN.GBK
很多老设备只支持:
此时本地终端也要改成对应编码(如 zh_CN.GBK)。
export TERM=xterm
或
export TERM=vt100
有些设备对 TERM 敏感,乱码可能和 TERM 有关。
如果你是用 Windows 上的 telnet 客户端:
Connection → Data → Terminal-type stringWindow → Translation → Remote character set = UTF-8telnet 不支持自动编码协商
也就是说:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
telnet 192.168.1.100
登录后服务器也执行:
export LANG=zh_CN.UTF-8
如果你能告诉我:
我可以给你更精确的设置方案。