问题描述: 在Docker中启动Springboot应用, 在前端中文显示乱码
Debug过程
- 查看数据库 数据库中也是乱码
- 将带中文字符的文件拷贝到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