打包的工具中利用了xerces_c库进行.xml数据的流式读取。工具在本地运行正常,在docker镜像中却无法解析中文,从而导致流式读取终止。
经过定位,发现是docker镜像中不支持中文,下面列出几种常用配置方法:
参考链接:https://www.jianshu.com/p/43a3468362aa
1. 配置Dockerfile镜像时,永久修改。
在 Dockerfile 中添加
ENV LANG C.UTF-8
# ENV LANGUAGE C.UTF-8 #可不配置
# ENV LC_ALL C>UTF-8 #可不配置
2. 在运行的Container中,进行修改。
交互方式运行容器 docker container run --it xxx
先输入locale -a,查看一下现在已安装的语言,查看是否已经有C.UTF-8字符集
再输入locale查看下语言情况,显示语言不正确。
通常设置`LANG、LANGUAGE、LC_ALL`这三个就行了。
关于他们三的关系简言之:
LANG默认设置,LC_*没设值的时候就拿LANG;LANGUAGE是程序语言设置;LC_ALL强制设置所有LC_*
详细传送门: [https://blog.csdn.net/nick357/article/details/8513699]
在/etc/bash.bashrc里面末尾写入,然后source /etc/bash.b

当在Docker镜像中使用xerces_c库处理XML数据时遇到中文乱码问题,导致流式读取失败。通过配置Dockerfile、在运行的Container内修改、安装新字符集或启动时设置字符集等方法可以解决此问题。参考链接提供了解决方案的详细步骤。
最低0.47元/天 解锁文章
1538

被折叠的 条评论
为什么被折叠?



