如何通过 ssh 查看远程 unicode 文件?

如何通过 ssh 查看远程 unicode 文件?

我有一个包含中文字符的unicode文件。我有它的本地副本和远程副本。

当我less在本地文件上使用时,字符显示正确:

奥尔德林

但是,当我ssh到远程机器并查看同一文件的远程版本时,字符却显示如下:

<E5><A5><A5><E5><B0><94><E5><BE><B7><E6><9E><97>

如何正确查看远程unicode文件(通过连接时ssh)?

(我使用 Mac OS 上的标准终端应用程序。)

答案1

cat如果使用它(或用来head缩短输出),文件是否能正确显示?

less我认为正确显示文件的关键在于正确LANG设置LC_ALL。在本地系统和远程系统上比较这些变量的值,看看它们是否不同,以及更改远程变量以匹配是否会产生影响。

来自less手册页(请注意最后一句话):

       如果未设置 LESSCHARSET 或 LESSCHARDEF,但任何字符串
       在 LC_ALL、LC_TYPE 或
       LANG 环境变量,则默认字符集为 utf-8。

       如果未找到该字符串,但您的系统支持 setlocale
       界面上,less会使用setlocale来确定字符集。
       setlocale 通过设置 LANG 或 LC_CTYPE 环境进行控制
       变量。

       最后,如果 setlocale 接口也不可用,则默认
       字符集是latin1。

       控制字符和二进制字符以突出显示(反向
       视频)。如果可能的话,每个这样的字符都以插入符号显示
       (例如 ^A 表示 control-A)。插入符号仅用于反转
       0100 位表示正常可打印字符。否则,字符
       acter 显示为尖括号中的十六进制数。

相关内容