静看光阴荏苒
不管不顾不问不说也不念

Debian11解决SSH中文乱码

最近upcloud新上了debian11的系统模板,前段时间我开了一台机器发现nano编辑器显示中文是乱码。

我手上还有几台debian11的机器只有upcloud的有问题,所以应该是upcloud提供的系统模板有问题,不是系统本身的问题。

查看locale,就可以发现问题了,正常情况下一般都是配置为en_US.UTF-8,但是这里回显的是C:

然后按照官方的wiki来操作:https://wiki.debian.org/Locale,执行如下命令:

dpkg-reconfigure locales

选中en_US.UTF-8:

同时设置默认的locale环境变量:

到这里,按道理来说应该就正常了才对,但是通过locale命令查看变量还是之前的C没有改变。

查看之前dpkg-reconfigure的配置有没有生效,确实是生效了的。。。这就奇了怪了~

root@debian-1cpu-1gb-sg-sin1:~# cat /etc/locale.gen | grep en_US.UTF-8
en_US.UTF-8 UTF-8
root@debian-1cpu-1gb-sg-sin1:~# cat /etc/default/locale
LANG=en_US.UTF-8

后来突然想到会不会是用户账户配置下面还定义了什么变量?果然在.profile下面发现了这个鬼玩意。。。

注释掉这两行:

#LANG=C
#LANGUAGE=C

使其生效:

source ~/.profile

退出ssh重新登录,如果还不生效,重启大法:

systemctl reboot

测试一下:

以上是提供一种解决这类乱码问题的思路,实际上很多种因素都能够导致这种乱码问题的发生。

往往不仅仅只有中文会乱码,韩文和日文也会。一般看到这几种语言都乱码的话,就要看看系统的locale是不是配置为utf8。

其次是ssh客户端,比如xshell上面也有语言配置,这里的配置也要确保是utf8:

如果把xshell这里配置为gbk,即便系统内的locale是正确的,也还是会乱码:

赞(8)
未经允许不得转载:荒岛 » Debian11解决SSH中文乱码
分享到: 更多 (0)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    发给客服喜提捉虫小能手奖 :oops:

    橘子3年前 (2021-10-14) Google Chrome 83.0.4103.88 Google Chrome 83.0.4103.88 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿