Springboot Docker中文乱码

181 阅读1分钟

问题描述: 在Docker中启动Springboot应用, 在前端中文显示乱码

Debug过程

  1. 查看数据库 数据库中也是乱码
  2. 将带中文字符的文件拷贝到docker中查看 在docker容器中查看也是乱码

解决方案

Docker image是根据Dockerfile创建, 在Dockerfile中安装语言包

RUN apt-get update && apt-get install language-pack-zh-han* -y

Dockerfile 中设置Docker容器环境变量

ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
ENV LC_ALL C.UTF-8

查看Docker容器的locale

$ sudo docker exec -it ${CONTAINER ID} /bin/bash
# locale
LANG=C.UTF-8
LANGUAGE=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=C.UTF-8