Docker官方tomcat容器中应用转换中文乱码

本文介绍了一种在使用Batik工具将SVG文件转换为图片时遇到的中文乱码问题及其解决方案。通过分析发现是由于缺少特定字体导致的问题,并通过在Docker容器中导入微软雅黑字体解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:

    应用中涉及了将svg格式的文件转换成图片业务,目前使用的是 batik工具,开发环境转换情况良好,但发布到生产环境中转换出的图片中文一直乱码。如下图:


    解决方案:

    生产环境使用docker tomcat镜像建立基础容器,原以为是容器内部字体编码不支持中文导致,各种调整均无效,且应用中文输出正常。经观察乱码框框,猜测是字体缺失导致,于是下载了应用中使用的“微软雅黑”字体,导入容器中(/usr/share/fronts),重启容器后解决了该问题。


### 创建并启动 Tomcat 容器 为了创建并启动一个带有 JRE 1.8 环境的 Tomcat 9 容器,可以使用如下命令: ```bash docker run --name=tomcat -d -p 8080:8080 -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps tomcat:9 ``` 这条命令会拉取官方的 `tomcat:9` 镜像,并以守护进程模式运行容器。端口映射 `-p 8080:8080` 将宿主机的 8080 端口绑定到容器内的相应端口上;卷挂载选项 `-v /mydata/tomcat/webapps:/usr/local/tomcat/webapps` 则允许将本地 `/mydata/tomcat/webapps` 文件夹中的 WAR 包部署至 Tomcat 中[^2]。 如果希望容器能够随着 Docker 主机重启而自动恢复,则可以在原有基础上增加 `--restart=always` 参数来设置自启策略: ```bash docker run --name=tomcat -d -p 8080:8080 --restart=always -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps tomcat:9 ``` 对于那些想要进入正在运行的 Tomcat 容器内部执行更多操作的情况,比如查看日志或调整配置文件,可以通过下面这个指令实现交互式的 shell 访问: ```bash docker exec -it <container_id> /bin/bash ``` 这里 `<container_id>` 是指代目标容器唯一标识符的部分字符串或是完整的 ID 号码。一旦进入了容器内层的操作系统环境之后,就能进一步导航到 `$CATALINA_HOME` 即 `/usr/local/tomcat` 下面去管理 Web 应用了[^1]。 需要注意的是,在某些情况下可能会遇到由于路径或其他因素引起的无法正常启动的问题。此时应当检查所使用的脚本以及资源位置是否正确无误,并确保所有依赖项都已妥善安置于预期的位置之中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lkmtao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值