打包的工具中利用了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