解决docker ubuntu镜像中文乱码问题

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值