會留里

弹指间,心无间

Linux/Debian/Putty中文显示, 语言locale设置

这篇文章记录了怎么解决Putty连接Linux(Debian)中文显示乱码, 需要修改的地方有两个, Putty的编码设置与Linux的语言设置.

一些基础的Linux命令:

首先修改Putty, 把Putty的Window/Translation/Remote character set 改为UTF-8, 这时如果你的Linux服务器默认系统语言为中文的话, Putty应该可以显示中文, 不是的话还需要更改一下Linux的系统语言.

$ locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=POSIX

在Linux输入locale命令, 可以查看当前系统的locale设定, 默认编码为POSIX, 需要做的事情是把它设为UTF-8

$ locale -a
C
POSIX

通过locale -a命令得到当前系统只支持两种locale, C/POSIX, 我们需要到用locale-gen命令生成一个可选的UTF-8 locale.

首先要修改一下locale.gen配置文件, 要不然locale-gen会无效, locale.gen文件位于/etc里, 把# en_US.UTF-8 UTF-8前面的#去掉.

$ locale-gen en_US.UTF-8
ng locales (this might take a while)...
on complete.

成功生成后, 继续locale -a查看一下, 发现en_US.UTF-8已存在列表之中.

$ locale -a
C
POSIX
en_US.UTF-8

之后要做的事情就是更改locale, 大功告成.

export LC_ALL='en_US.UTF-8'

避免每始重启后都要再export一次, 可以把 export LC_ALL='en_US.UTF-8' 这句加进 ~/.bashrc 里面.