1. 程式人生 > >Centos 中文亂碼解決方法

Centos 中文亂碼解決方法

Centos 中文亂碼解決方法

問題描述

crontab -e 新增定時任務時,直接將下面內容貼上過去,結果竟然亂碼了。

# 每個星期日凌晨3:00執行完全備份指令碼
0 3 * * 0 /bin/bash -x /root/bash/Mysql-FullyBak.sh >/dev/null 2>&1

# 週一到週六凌晨3:00做增量備份
0 3 * * 1-6 /bin/bash -x /root/bash/Mysql-DailyBak.sh >/dev/null 2>&1

變成了這個樣子

# 每賂枚脷脮璩:00執脨脥全滷賂路萁瘧戮
0 3 * * 0 /bin/bash -x /root/bash/Mysql-FullyBak.sh >/dev/null 2>&1

# 脰一碌陸脰脕脕魯驢3:00脳脭^?滷賂路脻0 3 * * 1-6 /bin/bash -x /root/bash/Mysql-DailyBak.sh >/dev/null 2>&1

就在昨天,還在另外一臺機器上按照百度的結果解決了亂碼問題,今天又遇到這個問題,結果解決方法忘了個一乾二淨,還得重新百度。-_-!!

解決步驟

1. 檢視系統是否安裝了中文語言包

# locale -a | grep 'zh_CN'
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

如果沒有任何輸出的話,就說明系統沒有安裝中文語言包。使用一下命令安裝

# yum groupinstall "fonts" -y

tip: 該命令我沒有親自試驗過,是從這個網址 拷過來的。請謹慎使用,出錯勿怪。(不過應該沒問題,就算有問題也不要害怕,繼續百度)

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=
修改語言環境

第一方法

# vim /etc/locale.conf
LANG=zh_CN
# source /etc/locale.conf

第二種方法

# localectl set-locale 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. 觀察實驗結果

# 每個星期日凌晨3:00執行完全備份指令碼
0 3 * * 0 /bin/bash -x /root/bash/Mysql-FullyBak.sh >/dev/null 2>&1

# 週一到週六凌晨3:00做增量備份
0 3 * * 1-6 /bin/bash -x /root/bash/Mysql-DailyBak.sh >/dev/null 2>&1

顯示中文了。^_^