Che*_*cal 20 ssh character-encoding
我在使用ssh
远程服务器(我没有管理员访问权限)时遇到了一些问题- 具体来说,那里有几个包含韩语和西里尔文文本的文件夹。
当我用 显示父文件夹内容时ls
,字符被转义为“?”。也许值得注意的是,韩文字符似乎比应该存在的字符数多得多。
我知道我使用的终端程序可以显示字符,因为使用sftp
可以完美显示它们。我尝试过的所有终端都会出现问题。
机器概要
本地机器:
远程服务器:
我可能错过了一些其他重要的统计数据或一些信息,在这种情况下,我深表歉意。我对计算的整个非 Windows 方面还很陌生,所以我几乎不知道我在这里做什么。
Gil*_*il' 22
您的区域设置信息未在服务器计算机上正确设置。具体来说,LC_CTYPE
指示终端上字符编码的变量没有正确设置(或者,我怀疑根本没有)。
在您的本地终端中,运行locale
以查看您的区域设置。你可能会看到(在其他行中)类似的东西LC_CTYPE=en_US.UTF-8
;这里重要的是.UTF-8
部分,表示UTF-8编码。这是 unix 世界(及其他)中多语言文本的事实上的标准编码。
您需要将此信息传递给服务器。如果可行,最好的方法是通过 ssh 连接发送区域设置信息。为此,在末尾添加以下几行~/.ssh/config
:
Host *
SendEnv LC_* LANG
Run Code Online (Sandbox Code Playgroud)
这要求AcceptEnv
在服务器配置 ( /etc/ssh/sshd_config
) 中存在合适的指令(在 Debian 上是默认设置)。
如果这不起作用,并且您总是从 UTF-8 终端登录到服务器,请将该行添加export LC_CTYPE=en_US.UTF-8
到您~/.bashrc
的服务器上(或~/.zshrc
您的 shell 使用的任何文件)。区域设置名称(例如en_US.UTF-8
)必须是由 提供的名称之一locale -a
,并且必须具有.UTF-8
(.utf8
或一些微不足道的变体)。
归档时间: |
|
查看次数: |
38809 次 |
最近记录: |