docker 容器中乱码解决办法(真实解决!!!)

事情是这样的,在使用docker部署Hadoop集群的时候,完成之后将一些文件名含中文字样的文件上传到集群发现没有上传成功,这些文件是在容器与宿主机挂载的文件夹中的,进入容器查看文件的时候发现下面这样的东西:

dataset  dataset??????2.jpg  dataset??????2.jpg?????????.jpg

显然是是docker中中文显示除了问题,上网查才知道docker中文显示是个经常遇到的问题.

先说网上绝大部分的解决方案,(然而我多次实验并没有解决问题)

可以使用如下的命令进行查看容器的编码格式,

locale

显示结果为

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=zh_CN.UTF-8
LANGUAGE=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

locale -a查看容器所有语言环境

C
C.UTF-8
POSIX

接着这里是网上的解决方法:

LANG=C.UTF-8

然后再激活:

source /etc/profile

然而实际上这样显示是没有出问题了,但是我的hdfs命令却失效了!!!

提示command not find

然而发现不使用激活环境激活语句,直接也就可以看到中文正常显示了,或者使用这样进行环境变量的设置:

export LANG=C.UTF-8

容器中其命令语句失效时,注意是否是使用了source /etc/profile语句.

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值