我们可以通过OpenShift控制台,从Git上直接做成一个Pod容器。优点是,不用写Dockerfile文件,由OpenShift完成Pod镜像创建的步骤。这样创建的Pod容器,在遇到中日文字符时,会遇到文字化的情况。

原因是Openshift做成的Pod容器,字符集的问题。可以在Pod终端上运行命令,查看Pod的字符集情况,可以出Pod是Linux的内核,字符集基本是en_us.utf8。这个字符集是不包括中文和日文汉字的。所以处理这类文字时,会遇到乱码的情况。POSIX字符集也是不支持中文的,因此程序出现错误。

对应方法是,我们自己做DockerFile来创建Pod,在创建Pod镜像时,指定环境字符编码。
FROM adoptopenjdk:11-jre-hotspot as builder ENV LANG C.UTF-8 RUN mkdir app RUN chmod -R 777 app WORKDIR app ADD ./*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
实际上linux字符集中支持中文且用的最多的应该是zh_CN.utf8字符集,不过幸运的是,C.UTF-8也是支持中文的,不然我们就必须手动安装其他支持中文的字符集了。
将系统字符集改为C.UTF-8, 只要把系统中的环境 LANG 改为”C.UTF-8″格式就可以了

发布完成后,可以看到字符集是C.utf-8
