Docker | 解决docker 容器中csv文件乱码的情况

问题描述:在Ubuntu docker容器中,打开.csv文件时显示乱码

问题如图

错误分析:

用locale查看所用容器支持的字符集

从输出可以看到,系统使用的是POSIX字符集,POSIX字符集是不支持中韩文的,而UTF-8是支持中韩文的 只要把系统中的环境 LANG 改为”UTF-8”格式即可解决问题。

查看容器支持的语言(可用语言环境):

locale -a

(我的情况)

解决方案方案

方法①:针对文件乱码

一般情况下保存的csv文件都是默认纯csv文件,如图 

在windows可以打开,但在ubuntu上会出现乱码,因为ubuntu是utf-8,修改方法如下:

  • csv文件另存为,选择保存类型为csv文件类型,选择后缀为CSV UTF-8 类型,然后保存。

这样子上传到ubuntu上就不会乱码了。

方案②:针对于文件内容乱码

gb2312只适应于中文,

 iconv -f gb2312 -t utf8 -c 文件名和后缀

 例如我的文件是s-labels.csv,那么转换代码是

 iconv -f gb2312 -t utf8 -c s-labels.csv

方案③:针对于系统字体乱码

中文输入

export  LANG="C.UTF-8"
export LANGUAGE="C.UTF-8"
export LC_ALL="C.UTF-8"

 修改后如图

(可选)显示韩文的情况下

export  LANG=en_US.UTF-8
export  LANGUAGE=ko_KR.UTF-8

修改后,更新:

source /etc/bash.bashrc

错误1:System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down

系统未以systemd为init系统启动(PID 1)。无法操作。
创建总线连接失败: 主机已停机

这种情况下我看别的文章中是重新设置一个docker容器,但是我容器中不是网络的问题,出来csv文件乱码,且容器有很多模型及数据集,没舍得重新运行一个容器,最终实现方案①完美解决!问题可能相同,但是解决方案可以不同~

猜你喜欢

转载自blog.csdn.net/weixin_44649780/article/details/130213142