解决 Docker 部署 Tomcat 出现中文乱码问题
原文地址:https://blog.lanweihong.com/posts/29854/
问题描述
Docker 默认不支持中文,Docker 部署好程序输出日志或返回数据中有中文则显示乱码:
/**
* ������������������
* @return
*/
- 查看当前容器支持的编码格式
[root@gga5eezhgbyZ ~]# docker exec -it f361b7d84652 locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
POSIX 编码是不支持中文的,所以显示乱码。
解决方法
- 重新生成容器,通过
-e LANG="C.UTF-8"设置LANG环境变量值为C.UTF-8:
docker run --name tomcat_test -e LANG="C.UTF-8" -d tomcat:8.5.56-jdk8-corretto
- 使用
docker exec -it tomcat_test locale查看编码环境,可以看到已经改为UTF-8,日志输出中文及返回数据中包含中文均正常显示。
[root@gga5eezhgbyZ ~]# docker exec -it tomcat_test locale
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
本文来自博客园,作者:lanweihong,转载请注明原文链接:https://www.cnblogs.com/lanweihong/p/14280272.html

浙公网安备 33010602011771号