OpenShift

OpenShift上部署Pod 文字化的问题

我们可以通过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

https://qiita.com/k_shim66/items/24e358d27d616911b8f3

https://www.jianshu.com/p/6fe582ba6d3d