[Linux] 解決終端顯示亂碼問題


【背景】

公司弄了兩台新的虛擬機,用來將原先都部署在一台機器上的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM