Docker容器内中文乱码

时间:2023-03-09 05:17:35
Docker容器内中文乱码

****:黑猫_:Dockerfile 创建容器内中文乱码问题解决

博客园:杜家利:解决docker容器中Centos7系统的中文乱码

****:Diego2048:docker 容器中文字生成图片乱码 解决方案



需求描述:

公司微服务架构,Docker启动服务,有个上传附件的功能,图片加水印,中文乱码。

通过百度及阅读相关博文,找到了相关解决方法如下:

一、通过Dockerfile解决中文乱码问题

使用Dockerfile 构建一个新的带有中文环境的镜像。

FROM centos
MAINTAINER maochengli
#设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
#RUN export LANG=zh_CN.UTF-8
#RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf
#ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8

使用 Docker build -t centos-zh . 构建一个新的镜像,这个镜像就支持中文了。

Docker容器内中文乱码

方式二:

在Dockerfile中添加一行,如下所示:

ENV LANG C.UTF-8

重新制作docker镜像,重新进入容器后发现问题解决!

二、临时解决

进入到容器当中,然后:

$>localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

$>yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common

$>localedef -c -f UTF-8 -i zh_CN zh_CN.utf8   

$>export LC_ALL=zh_CN.utf8

方式二:

yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
export LC_ALL=zh_CN.utf8

三、修改jre/lib/fonts下的字体

进入到docker容器内部,

docker exec -it 容器ID /bin/bash

然后进入到容器内部的jdk目录,在$JAVA_HOME/jre/lib/fonts下上传需要的字体,如simsun.ttc。

exit

退出容器,然后重启容器。

docker restart 容器Id

so,应该会成功的吧。。我是这样成功的。。