乐清市文章资讯

Linux怎么设置中文语言? centos中文乱码的解决办法

2026-03-27 15:56:02 浏览次数:2
详细信息

CentOS/Linux 设置中文语言和解决乱码的方法如下:

一、CentOS 7/8 设置中文语言

1. 查看当前语言环境

# 查看当前系统语言
echo $LANG
locale

# 查看已安装的语言包
locale -a

2. 安装中文语言包

# 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

3. 设置系统语言

# 方法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"

4. 重启系统或重新登录

# 使语言设置生效
reboot
# 或
logout  # 重新登录

二、解决中文乱码问题

1. 确保编码为 UTF-8

# 检查系统编码
locale

# 正确输出应包含:
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"

2. 安装完整的中文字体

# 安装常用中文字体
yum install -y \
    fonts-chinese \
    cjkuni-ukai-fonts \
    cjkuni-uming-fonts \
    adobe-source-han-sans-cn-fonts \
    adobe-source-han-serif-cn-fonts

3. SSH客户端设置

4. 修改终端编码

# 修改终端配置文件
vim /etc/sysconfig/i18n
# 添加:
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
SYSFONT="latarcyrheb-sun16"

5. 检查并生成 locale

# 检查中文 locale 是否可用
locale -a | grep zh_CN

# 如果不存在,生成中文 locale
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

6. 数据库连接乱码解决

# 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 容器需要在基础镜像中安装语言包

如果仍有乱码,请检查:

相关推荐