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