SSH远程连接Linux时出现中文乱码

SSH远程连接Linux时出现中文乱码,第1张

如果安装的是centos7最小化安装,指令locale一下,查出来的编码格式是UTF-8;而SSH客户端的编码是GBK的,这个远程工具不能修改本地编码,所以连接Linux的时候就会出现中文乱码问题因为是最小安装,那么在/etc/sysconfig下是没有i18n这个国际化的文件,那么在/etc/sysconfig下是没有i18n这个国际化的文件, 在系统的预处理文件中声明,这样对整个系统起作用: #vi /etc/profile 在文件尾加入 LC_ALL=”zh_CN.GBK“ export LANG=”zh_CN.GBK“ 在用户的预处理文件中声明,对单独的用户起作用,下面是root用户的示例 #vi /root/.bash_profile 在文件尾加入 export LC_ALL=”zh_CN.GBK“ export LANG=”zh_CN.GBK“ 显示当前编码格式为gbk就表示修改完成了

ssh登陆后,执行: \x0d\x0aexport LANG=zh_CN.gb2312\x0d\x0a就可以显示中文了。\x0d\x0a编辑/etc/sysconfig/i18n 将LANG="zh_CN.UTF-8" 改为 LANG="zh_CN.GB18030" 可永久显示中文

这种情况一般是终端和服务器的字符集不匹配,MacOSX下默认的是utf8字符集。

输入locale可以查看字符编码设置情况,而我的对应值是空的。

因为我在本地和服务器都用zsh替代了bash,而且使用了oh-my-zsh,而默认的.zshrc没有设置为utf-8编码,所以本地和服务器端都要在.zshrc设置,步骤如下,bash对应.bash_profile或.bashrc文件。

1.在终端下输入

vim ~/.zshrc

或者使用其他你喜欢的编辑器编辑~/.zshrc文件

<!--more-->

2.在文件内容末端添加:

export LC_ALL=en_US.UTF-8

export LANG=en_US.UTF-8

接着重启一下终端,或者输入source ~/.zshrc使设置生效。

设置成功的话,在本地和登录到服务器输入locale回车会显示下面内容。

LANG="en_US.UTF-8"

LC_COLLATE="en_US.UTF-8"

LC_CTYPE="en_US.UTF-8"

LC_MESSAGES="en_US.UTF-8"

LC_MONETARY="en_US.UTF-8"

LC_NUMERIC="en_US.UTF-8"

LC_TIME="en_US.UTF-8"

LC_ALL="en_US.UTF-8"

这时,中文输入和显示都正常了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8679125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存