在UNIX下打开文件看内容的时候发现有乱码

场景:一个文件的编码为UTF-8,Unix系统的编码设置也为UTF-8,通过Putty连接到Unix服务器,用VI打开文件,显示乱码.

1,查看Unix的系统的编码(locale 命令):证实为UTF-8

LANG=en_GB.UTF-8
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC=en_GB.UTF-8
LC_TIME="en_GB.UTF-8"
LC_COLLATE=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_ALL=en_GB.UTF-8

如果不是的话可以通过设置 export LC_ALL=en_GB.UTF-8 将当前session的编码设为UTF-8

2,文件的编码确认为UTF-8,Unix的系统的编码也是UTF-8,为什么VI打开后显示的为乱码呢?问题出在Putty的设置,从Unix传输到Putty本地显示的过程也需要设置,Putty的菜单: change settings --> Window -->Translation.将 'Received data assumed to be in which character set'选择为UTF-8.

3,用VI打开文件,正常显示.

*在Windows下:如果cmd无法正常显示中文, 或者其他字符, 通过chcp 来修改, 参数是nnn代表3个数字. 简体中文的codepage是: 936 西文是:1252

Syntax
chcp [nnn] : chcp 936

你可能感兴趣的:(unix)