CentOS/Linux 设置中文语言和解决乱码的方法如下:
# 查看当前系统语言
echo $LANG
locale
# 查看已安装的语言包
locale -a
# CentOS 7
yum install -y langpacks-zh_CN
yum install -y glibc-common
# CentOS 8
dnf install -y langpacks-zh_CN glibc-langpack-zh
# 安装字体包(重要,解决乱码)
yum install -y wqy-microhei-fonts wqy-zenhei-fonts
# 方法1:临时生效(仅当前会话)
export LANG=zh_CN.UTF-8
# 方法2:永久生效(用户级)
echo 'export LANG=zh_CN.UTF-8' >> ~/.bashrc
source ~/.bashrc
# 方法3:永久生效(系统级)
localectl set-locale LANG=zh_CN.UTF-8
# 或编辑配置文件
vim /etc/locale.conf
# 添加或修改为:
LANG="zh_CN.UTF-8"
# 使语言设置生效
reboot
# 或
logout # 重新登录
# 检查系统编码
locale
# 正确输出应包含:
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
# 安装常用中文字体
yum install -y \
fonts-chinese \
cjkuni-ukai-fonts \
cjkuni-uming-fonts \
adobe-source-han-sans-cn-fonts \
adobe-source-han-serif-cn-fonts
# 修改终端配置文件
vim /etc/sysconfig/i18n
# 添加:
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
SYSFONT="latarcyrheb-sun16"
# 检查中文 locale 是否可用
locale -a | grep zh_CN
# 如果不存在,生成中文 locale
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
# MySQL 连接时指定编码
mysql -u root -p --default-character-set=utf8
# 在 my.cnf 中添加:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
#!/bin/bash
# 保存为 chinese_setup.sh,执行:bash chinese_setup.sh
echo "开始设置中文环境..."
# 安装语言包和字体
if grep -q "release 7" /etc/centos-release; then
yum install -y langpacks-zh_CN glibc-common
yum install -y wqy-microhei-fonts
elif grep -q "release 8" /etc/centos-release; then
dnf install -y langpacks-zh_CN glibc-langpack-zh
dnf install -y wqy-*fonts
fi
# 设置系统语言
localectl set-locale LANG=zh_CN.UTF-8
echo "LANG=zh_CN.UTF-8" > /etc/locale.conf
# 生成中文 locale
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
echo "设置完成!请重新登录或重启系统。"
# 验证1:查看语言设置
echo $LANG
locale
# 验证2:显示中文测试
echo "中文测试" > test.txt
cat test.txt
# 验证3:查看日期中文显示
LANG=zh_CN.UTF-8 date
# 验证4:检查字体
fc-list :lang=zh
/etc/locale.conf 优先于用户环境变量
SSH客户端:必须设置为 UTF-8 编码
服务应用:某些服务可能需要重启才能应用新语言
最小化安装:如果是最小化安装,可能需要先安装更多语言包
容器环境:Docker 容器需要在基础镜像中安装语言包
如果仍有乱码,请检查:
file -i filename 查看)