【背景】
公司弄了兩台新的虛擬機,用來將原先都部署在一台機器上的JIRA, Fisheye, Confluence遷移到這兩台機器上,使用SecureCRT進行登錄,使用相關命令時,一台出現亂碼,另外一台正常顯示,使用vim時,也是一樣,所以來總結總結亂碼問題的解決方法。
【解決】
1. 兩台相關截圖
| 第一台 | 第二台 |
|
|
|
2. 在網上找到方法說是需要修改/etc/sysconfig/i18n,比較兩台機器上的這個文件內容,發現亂碼機器為空,非亂碼機器為如下:
#LANG="zh_CN.UTF-8" 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="latarcyrheb-sun16"
3. 按照網上查到的相關資料表明確實是需要修改此文件,修改之
vim /etc/sysconfig/i18n
修改之后,發現沒法更新,我使用的sysadmin登錄的,查看文件權限:

這樣種辦法只能找到root帳號,再進行更新,我們這種帳號不可能給出來,只能找運維部門解決。
4. 繼續搜索,有貼子里提到這么一句話“遠程工具與服務器的字符集是否一樣”,想着我使用的是SecureCRT進行的登錄,所以嘗試着修改一下工具的字符集,找到如下設置:

修改這里的字符編碼,使用locale查看本機字符編碼如下:

修改終端字符編碼為UTF-8,最終編碼顯示正常,和另一台機器一樣
【總結】
再次進行資料搜集之后,總結亂碼如下解決辦法:
0. 查看遠程工具與服務器的字符集是否一樣
1. 修改/etc/sysconfig/i18n:
#LANG="zh_CN.UTF-8" 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="latarcyrheb-sun16"
2. 修改~/.bash_profile文件,並執行source ~/.bash_profile(在不重啟系統的情況下使新環境變量生效):
LANG="zh_CN.GB18030"
3. 在bash環境下直接執行:
export LANG=zh_CN.GB18030


