docker 容器中乱码解决办法(真实解决!!!)
事情是这样的,在使用docker部署Hadoop集群的时候,完成之后将一些文件名含中文字样的文件上传到集群发现没有上传成功,这些文件是在容器与宿主机挂载的文件夹中的,进入容器查看文件的时候发现下面这样的东西:datasetdataset??????2.jpgdataset??????2.jpg?????????.jpg显然是是docker中中文显示除了问题,上网查才知道docke...
·
事情是这样的,在使用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语句.
更多推荐
已为社区贡献1条内容
所有评论(0)