1. 程式人生 > >SSH訪問linux 亂碼問題

SSH訪問linux 亂碼問題

vi編輯器 file bash 本地 客戶端和服務器 文件 path 編輯 令行

SSH Secure Shell Client中文亂碼的解決方法

這是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 Secure Shell Client中文亂碼的解決辦法

說這是SSH Secure Shell Client多年未解決的短板,要求客戶端和服務器端都要‘UTF-8’編碼,恩恩,這下我終於知道Windows中文版的編碼居然是非UTF-8了。
意思是我不換操作系統,就無法使用這個東東了?
於是乎,解決辦法貌似只有兩個。
1,換系統。
2,使用Putty:http://filezilla-project.org/download.php?type=client
當然,如果需要SFTP,可以使用filezilla,包含了一個小巧的服務器端和FTP功能。
就是安裝起來麻煩點...
後來找到根本的解決辦法,只知方法,不知原因。

#vi /etc/sysconfig/i18n

將內容改為

LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

SSH訪問linux 亂碼問題