解决 tomcatdocker镜像中文乱码问题
使用tomcat的官方镜像部署服务,但是出现中文乱码问题
问题分析
1.出现乱码问题 -- 开发将GBK改为utf8后 在测试环境使用tomcat已经未出现乱码,但预发布环境使用docker出现乱码
2.登录docker容器内发现字符集设置为C.UTF-8,于是启动容器时指定env LANG=en_US.UTF-8但问题并未解决
3.陷入僵局-- 修改catalina.sh 指定JAVA_OPTS=-Dfile.encoding=UTF-8 启动应用 还是乱码
4.使用locale -a 查看支持的字符集 发现并没有zh_CN.utf8或者en_US.UTF-8 于是尝试在容器内安装中文字符集 apt-get update && apt-get install Xxx 未果 并没有安装包
5.最后尝试将字符集文件挂载到容器内 并设置UTF8 解决 docker-compose 如下
docker-compose 示例
version: '3'
services:
tuisong-system:
container_name: tuisong-system
image: tomcat:9.0-jdk8
#network_mode: "host"
ports:
- "8082:8080"
restart: always
environment:
- LANG=en_US.UTF-8
#- LANG=zh_CN.utf8
- JAVA_OPTS=-Dfile.encoding=UTF-8
volumes:
- ./webapps:/usr/local/tomcat/webapps
- ./FZKTJW.TTF:/usr/local/share/fonts/FZKTJW.TTF
deploy:
resources:
limits:
memory: 4096M
中文字体下载地址
https://iptables.cn/file/fonts/FZKTJW.TTF