日期:2014-05-16  浏览次数:20685 次

远程登录主机less和vi乱码
本帖最后由 haoyyy 于 2013-07-23 19:56:09 编辑
使用secure CRT登录远程主机,用more和cat查看文件,中文显示正常.用less和vi查看文件发现中文乱码.

服务器i18n文件是en_US.UTF-8

在 http://segmentfault.com/q/1010000000172466 查到解决less乱码方法是:
export LESSCHARSET=latin1


同样发现,在vi打开文件乱码的时候执行以下命令可以解决乱码问题:
:set termencoding=latin1


请问为什么设成latin1就不乱码了?我在网上看latin1是ISO-8859-1的别名,仅支持英文.而我设成utf-8还是乱码.

补充:
我在vi里面发现fileencoding=latin1 , fileencodings=utf-8,latin1,文件编码是utf-8
乱码 LESS 远程登录 latin1

------解决方案--------------------
我用的 putty, 远程同样也是 utf8 的, zh_CN.UTF8
putty 需要设置才能正常显示.

secure CRT 可能也有地方指定, 你找找.
------解决方案--------------------
Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。
  ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
  ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。
  因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。