出現這個情況一般是由於沒有安裝中文語言包,或者設置的默認語言有問題導致的。
查看當前語言環境
echo $LANG
發現為
zh_TW.UTF-8
但是中文語言包沒安裝或沒啟用,就會出現亂碼
輸入 LANG=en_US 設置顯示為英文,此命令即時生效,但不能永久生效,永久生效看下面。
此時,再次輸入命令就可以看到英文報錯信息了
如果一定需要中文提示,可以這樣安裝:
yum groupinstall chinese-support
設置本地默認語言環境
vim /etc/locale.conf 加入
LANG=“zh_TW.UTF-8”
即時永久生效
source /etc/locale.conf
輸 locale 可以查看本地語言環境
LANG=zh_TW.UTF-8 LC_CTYPE="zh_TW.UTF-8" LC_NUMERIC=zh_TW.UTF-8 LC_TIME=zh_TW.UTF-8 LC_COLLATE="zh_TW.UTF-8" LC_MONETARY=zh_TW.UTF-8 LC_MESSAGES="zh_TW.UTF-8" LC_PAPER=zh_TW.UTF-8 LC_NAME="zh_TW.UTF-8" LC_ADDRESS="zh_TW.UTF-8" LC_TELEPHONE="zh_TW.UTF-8" LC_MEASUREMENT=zh_TW.UTF-8 LC_IDENTIFICATION="zh_TW.UTF-8" LC_ALL=
注意,我這變語言環境是臺灣繁體,中文簡體應將TW改為CN
附錄:下面看下centos中顯示utf-8編碼格式的shell腳本有中文亂碼解決方法
問題現象
自己編寫的shell腳本,保存的編碼格式為utf-8,但是上傳到centos中,顯示為中為亂碼
使用 file shell.sh 查看文件的編碼格式
shell.sh: UTF-8 Unicode text
解決方法
使用iconv 把文件編碼格式轉換成為gb2312
iconv -f utf-8 -t gb2312 shell.sh > shell2.sh
再次file shell2.sh查看文件編碼
linuxsec2.sh: ISO-8859 text
中文亂碼問題得以解決
[sl_ivan ] CentOS8出現-bash:亂碼問題及解決方法已經有1176次圍觀