沙滩星空的博客沙滩星空的博客

正确解决Linux终端中文显示乱码问题

查看语言

1.查看当前系统语言

root@yourserver:~# echo $LANG
C
root@yourserver:~# locale
LANG=C
LANGUAGE=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

2.查看可用的语言包

root@whqserver:~# locale -a
C
C.utf8
POSIX
zh_CN.utf8

新增语言

如执行 locale -a 命令后,未发现 zh_CN.utf8 中文包,则按以下步骤自行添加。

1.修改 /etc/locale.gen 文件,去掉要添加的语言包的注释。

root@whqserver:~# vim /etc/locale.gen
...
# zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
# zh_HK BIG5-HKSCS
zh_HK.UTF-8 UTF-8
# zh_SG GB2312
...

2.执行 locale-gen 命令,生成新添加的语言包

root@whqserver:~# locale-gen
Generating locales (this might take a while)...
  zh_CN.UTF-8... done
  zh_HK.UTF-8... done
Generation complete.
root@whqserver:~# locale -a
C
C.utf8
POSIX
zh_CN.utf8
zh_HK.utf8

修改语言

1.临时修改

export LANG="zh_CN.utf8"
export LC_ALL="zh_CN.utf8"

2.永久修改

# 在 /etc/profile 或 ~/.bashrc 文件末尾新增2行
echo "export LANG=zh_CN.utf8" >> /etc/profile
echo "export LC_ALL=zh_CN.utf8" >> /etc/profile

# 保存后执行 source 命令刷新配置,使之生效
source /etc/profile

注意: 测试发现,在 /etc/profile~/.bashrc 文件修改的 LANG 变量,在重新登录shell后, LANG 变量的修改无法生效。原因未知。而 LC_ALL 变量则无此问题。


解决Linux 中文乱码 https://blog.csdn.net/weixin_46605889/article/details/130887126
未经允许不得转载:沙滩星空的博客 » 正确解决Linux终端中文显示乱码问题

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址