背景

公司新项目使用docker进行部署,以centos7为基础镜像进行java服务部署,部署之后发现服务日志中出现中文乱码现象。乱码问题一般都是文件编码和打开编码不一致导致,文件已经确定使用的是UTF-8,于是开始查看服务器编码。
在这里插入图片描述
使用locale命令查看服务器采用的字符编码,经过确认服务器采用的是POSIX编码,而此编码不支持中文,需要修改成zh_CN.utf8格式。

安装服务器编码

# 查看服务器本地已经安装的编码
locale -a

在这里插入图片描述
可以看到centos镜像中只有C、POSIX和en这几种格式,并不支持中文编码,需要使用yum源进行安装

# 安装中文字符集
yum install -y kde-l10n-Chinese
yum reinstall -y glibc-common

# 加载中文字符集
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

# 确认安装结果
locale -a

在这里插入图片描述

修改服务器编码

可以看到中文字符集已经安装完成,接下来需要进行本地配置,编辑locale.conf文件,将下面内容增加至行尾

vim /etc/locale.conf

在这里插入图片描述

# 加载配置立即生效
source /etc/locale.conf

# 同步修改属主字符集配置
echo 'set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936' >> /root/.vimrc;echo 'set termencoding=utf-8' >> /root/.vimrc;echo 'set encoding=utf-8' >> /root/.vimrc

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐