CentOS 7中的系統語言包及UTF-8、en_US.UTF-8和zh_CN.UTF-8的區別


 

UTF-8、en_US.UTF-8和zh_CN.UTF-8的區別

en_US.UTF-8、zh_CN.UTF-8叫做字符集,就是說‘A’、‘B’、‘中’、‘國’等對應的整數值,
en_US.UTF-8只包含了ASCII碼,zh_CN.UTF-8包含了6000多個漢字?
如果是這樣的話,那所謂UTF-8,就是把這些整數,編寫成一串字節的方法?

 

UTF-8 是編碼方式

 

en_US.UTF-8 和 zh_CN.UTF-8 是語言環境,也就是字符集

 

en_US.UTF-8 和 zh_CN.UTF-8 包含的字符數量是基本上一樣的,大概是七萬個漢字,編碼都是 UTF-8 編碼,字符集是 Unicode,版本是 4.1 吧?zh_CN.GB18030 和 zh_CN.GBK 的字符集都與 Unicode 3 是等價的,記得應該是這樣
語言環境的差別就是另一回事了,中國人和外國人表示時間啦,數字啦,習慣都不一樣,所以必須區分開。大部分程序根據語言環境變量來選擇界面的語言是中文還是英文。

 

 

 

所以一般linux系統的語言環境設置成:export LANG=zh_CN.UTF-8,代表中國人使用的unicode字符集

 

 查看默認語言

[root@localhost ~]$ cat /etc/locale.conf <-----之前的 /etc/sysconfig/i18n 已變為 /etc/locale.conf

  LANG=en_US.UTF-8​​​<------默認是英
 或 [root@localhost​~]$ echo $LAN

 查看系統已安裝的語言包

$ locale
 LANG=en_US.UTF-
 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"​​<-------裝的都是英文包 ,沒有安裝中文

臨時修改默認語言

[root@localhost​~]$ LANG="zh_CN.UTF-8"​​<----臨時設置默認語言為中文,前提是安裝了中文語言

 

永久修改語言包

  1 、安裝中文語言包:

[root@host ~]# yum install -y kde-l10n-Chinese

 2 、安裝 glibc-common(如果已經安裝過,則需要重新安裝):

  先檢查是否已經安裝 glibc-common :

[root@host ~]# yum list installed | grep glibc-common
或者
[root@host ~]# rpm -qa | grep glibc-common

如果已經安裝過,則需要重新安裝,這樣才能利用上第一步的中文語言包:

[root@host ~]# yum reinstall -y glibc-common

如果沒有安裝過,那么安裝即可:

[root@host ~]# yum install -y glibc-common

3 、查看系統是否支持中文語言包:

[root@host ~]# locale -a | grep zh

4 、修改配置文件,再重啟服務器即可:

[root@host ~]# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
[root@host ~]# reboot
 
 

查看文件編碼及修改文件編碼

 [root@localhost​~]$ enca filename​​​​<--- 沒有這個命令請安裝​ sudo yum install -y enc


 需要說明一點的是,enca對某些GBK編碼 的文件 識別的不是很好,識別時會出現
 Unrecognized encodin
 在Vim中查看文件編碼

 :set fileencodin

 如果想查看其它編碼格式的文件或者想解決用Vim查看文件亂碼的問題,那么你可以
 ~/.vimrc 文件 中添加以下內容
 set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp93
 這樣,就可以讓vim自動識別文件 編碼 (可以自動識別UTF-8或者GBK編碼 的文件 ),其實就是依照 fileencodings提供的編碼 列表嘗試,如果沒有找到合適的編碼 ,就用latin-1(ASCII)編碼 打開

 在Vim中直接進行轉換文件編碼 ,比如將一個文件 轉換成utf-8格
 :set fileencoding=utf-

 用命令enconv 轉換文件編碼

 enconv -L 原編碼 -x 新編碼 filename
 例如: enconv -L zh_CN -x UTF-8 filenam


 用命令iconv 轉換文件編碼

 iconv -f 原編碼 -t 新編碼 filenam
 例如:iconv -f encoding -t encoding filenam


 用命令convmv 轉換文件名編碼:​​<-----此命令常用於解決Linux文件拷貝到Windows后文件名亂碼的問
 convmv -f 原編碼 -t 新編碼 [選項] filenam
 常用參數
 -r 遞歸處理子文件 
 --notest 真正進行操作,請注意在默認情況下是不對文件 進行真實操作的,而只是試驗
 --list 顯示所有支持的編
 --unescap 可以做一下轉義,比如把 變成空
 注意:該命令只轉換文件名編碼,文件內容不
 不要在NTFS和FAT文件 系統中使用此命令,否則可能產生意外結果,如果要在Linux 中正確的顯示NTFS和 FAT的中文件名,可以通過mount參數來解決,具體方法查看一下man手冊

 

參考:https://ccie.lol/knowledge-base/linux-centos-7-install-chinese

         https://www.iteye.com/blog/825635381-2087814

         https://zhuanlan.zhihu.com/p/58655288


免責聲明!

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



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