centos7 中文亂碼問題解決方法


1.查看是否安裝中文包

可以使用下面的命名查看系統是否安裝了中文安裝包。

locale -a |grep "zh_CN"

沒有輸出,說明沒有安裝,輸入下面的命令安裝:

yum groupinstall "fonts" -y

安裝完成,查看安了哪些中文語言包

[root@iz2ze6adlpez0gy7j13vrmz /]# locale -a | grep "zh_CN"
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

說明系統已安裝中文語言包,無需再安裝。重要提示,如果按照下面的步驟你的系統仍然無法使用中文,那么請一個一個嘗試上面的編碼方式。比如把LANG="zh_CN"修改為LANG="zh_CN.gb18030"。

2 修改配置文件

在修改配置文件之前,我們先看看當前系統語言環境:

# echo $LANG
en_US.UTF-8

# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

雖然安裝了中文語言包但本機的語言環境並不是中文,需要修改locale.conf配置文件

# vim /etc/locale.conf
LANG="zh_CN"
# source   /etc/locale.conf
vim /etc/locale.conf 進入編輯頁面,輸入i開始編輯,編輯完成輸入esc到底行模式,然后輸入:wq,保存並退出

也可以使用命令修改locale.conf配置文件:

#  localectl set-locale LANG=zh_CN

之后查看當前語言環境:

# echo $LANG
zh_CN

# locale
LANG=zh_CN
LC_CTYPE="zh_CN"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_COLLATE="zh_CN"
LC_MONETARY="zh_CN"
LC_MESSAGES="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"
LC_ALL=

3. 驗證是否成功

[root@node2 ~]# date
2017年 10月 16日 星期一 16:30:24 CST

 

4.命令補充解釋

locale -a |grep "zh_CN" :列出所有可用的公共語言環境的名稱,然后篩選中文

 

locale -a :列出所有可用的公共語言環境的名稱.

從中如果可以看到如下幾項,也說明系統已經安裝了中文語言包。無需再安裝,那這幾項代表什么意思呢?

{語言代號}_{國家代號}.{字符集}

zh是中文的代號、CN是中國的代號、gb18030,gb2312,utf8是語言字符集

那么每一項可以通俗理解為   “你是說中文的,你在中國,語言字符集是gb18030/gb2312/utf8”

如果沒有發現以上幾項,則手動安裝中文語言包

 # yum install kde-l10n-Chinese            (大概11M)

locale : 查看當前系統語言環境

("en_US.UTF-8"按照上面的內容可以理解為“你說英語,你在美國,語言字符集為UTF-8”) 

每項的意思分別為 :

LANG:當前系統的語言

LC_CTYPE:語言符號及其分類

LC_NUMERIC:數字

LC_COLLATE:比較和排序習慣

LC_TIME:時間顯示格式

LC_MONETARY:貨幣單位

LC_MESSAGES:信息主要是提示信息,錯誤信息, 狀態信息, 標題, 標簽, 按鈕和菜單等

LC_NAME:姓名書寫方式

LC_ADDRESS:地址書寫方式

LC_TELEPHONE:電話號碼書寫方式

LC_MEASUREMENT:度量衡表達方式

LC_PAPER:默認紙張尺寸大小

LC_IDENTIFICATION:對locale自身包含信息的概述

LC_ALL:優先級最高變量,若設置了此變量,所有LC_* 和LANG變量會強制跟隨它的值

我們看到雖然安裝了中文語言包但本機的語言環境並不是中文

 

重啟系統

# reboot

 

5.遠程工具SSH Secure 亂碼問題的解決

使用遠程工具進行連接時,如果 linux 有中文文件或目錄,顯示時會出現亂碼,原因
是 linux 編碼是 UTF-8,而遠程工具默認是當前系統本地編碼即 GBK。所以解決方案是統
一兩者編碼就 OK 了,但是該 SSH Secure 工具不能設置編碼,所以通過修改 linux 的系
統編碼的方式進行統一編碼。 

 

第一步:查看當前系統的語言環境。

這里因為之前已經修改成了gbk的編碼。

第二步:修改配置文件locale.conf

# vim /etc/locale.conf

 

輸入i進入編輯模式,編輯完成按ESC進入底行模式。然后輸入:wq退出並保存。

 

執行下面的命令,讓修改生效。

# source /etc/locale.conf

輸入date驗證。如果還有問題,也可以reboot重啟一下。

 

文章參考及來源:

1.https://www.cnblogs.com/sisimi/p/7693226.html

2.https://www.linuxidc.com/Linux/2017-07/145572.htm


免責聲明!

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



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