H5W3
当前位置:H5W3 > 其他技术问题 > 正文

解决Docker部署Tomcat出现中文乱码问题

问题描述

Docker 默认不支持中文,Docker 部署好程序输出日志或返回数据中有中文则显示乱码:

1
2
3
4
/**
* ������������������
* @return
*/
  1. 查看当前容器支持的编码格式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [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 编码是不支持中文的,所以显示乱码。

解决方法

  1. 重新生成容器,通过 -e LANG="C.UTF-8" 设置 LANG 环境变量值为 C.UTF-8

    1
    docker run --name tomcat_test -e LANG="C.UTF-8" -d tomcat:8.5.56-jdk8-corretto
  2. 使用 docker exec -it tomcat_test locale 查看编码环境,可以看到已经改为 UTF-8,日志输出中文及返回数据中包含中文均正常显示。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [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=

本文地址:H5W3 » 解决Docker部署Tomcat出现中文乱码问题

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址