这是SSH Secure Shell Client多年未解决的短板,要求客户端和服务器端都要‘UTF-8’编码,Windows中文版的编码是非UTF-8。zh_CN.UTF-8是UTF编码的中文语言环境。
Windows使用的是GB2312编码,大多数linux系统支持的是UTF-8编码,而远程登陆时使用的是本地编码,所以会出现乱码的问题;现有几种解决方案:
方案一:修改linux服务器的环境变量
使用linux,在用户根目录下有一个.bash_profile配置文件,该配置只对当前用户有效.若对所有的用户有效,修改/etc/profile文件
使用ls -a命令可以查看到该文件.使用vi编辑器打开该文件后,在其中加入
LANG=zh_CN.GB2312
export LANG
即可正常显示中文.更改 .bash_profile 配置文件后,该文件内容如下:( 我使用的是这个方法 !)
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ] then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
LANG=zh_CN.GB2312
export PATH
export LANG
unset USERNAME
方案二:或使用其他远程登陆软件,并修改配置,将字符编码设置为UTF-8。
PS:远程登陆软件 命令行界面putty,Cterm,SecureCRT,含FTP功能的有Filezilla,Secure Shell Client,图形界面的有Xming,XShell,Xmanager等
下面以Putty和SecureCRT为例。
修改SecureCRT设置:选项(Options)->会话选项(Session Options)->外观(Appearance)->字符(Character),选择UTF-8。
putty选择配置窗口左边的Windows—— Translation,在右边的 Received data assumed to be in which character set 下拉列表中选择“UTF-8”
需要将终端(ssh连接成功就是远程终端)的编码设置成中文编码,改变终端编码需要设置LANG这个环境变量,设置方法是在终端输入LANG=zh_CN.UTF-8,设置好LANG变量后编码字符集就改变了。在终端直接设置LANG环境变量的方式,在下次登录或下次打开虚拟终端时,设置就生效了。如果不想每次打开终端都输入LANG=zh_CN.UTF-8设置一遍,可以把LANG=zh_CN.UTF-8这一行内容加入到~/.bashrc这个配置文件中,保存退出这个配置文件后再执行命令:
source ~/.bashrc
使配置文件的设置马上生效。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)