解决docker容器中文乱码,修改docker容器编码格式

解决docker容器中文乱码,修改docker容器编码格式

前台上传文件到服务器后,服务器返回给前台的文件列表中出现中文乱码,所有的中文文件名全部变成?,英文文件名则正常显示。

kubectl exec进入到docker容器中进行查看时发现,文件在容器中也是中文文件名显示异常。

查看docker容器编码格式:执行locale命令;可以看到当前编码格式为POSIX,而这种编码格式不支持中文。

解决办法:locale -a 查看容器所有语言环境

C.UTF-8可以支持中文,只需要把容器编码设置为C.UTF-8即可

    1.临时修改:

       locale

       locale -a

       LANG=C.UTF-8  (有的是zh_CN.UTF-8,不过我在本地没发现这种编码)

       source /etc/profile

    2.永久修改:修改Dockerfile

      在Dockerfile中添加一行

      ENV LANG C.UTF-8

重新制作docker镜像,docker run -ti [镜像] 进入容器后执行locale发现编码格式已经被修改为C.UTF-8,之前出现的中文文件名乱码问题也没有了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据