当前位置: 首页 > 编程笔记 >

Docker容器中文乱码(修改docker容器编码格式)的解决方案

殳凯捷
2023-03-14
本文向大家介绍Docker容器中文乱码(修改docker容器编码格式)的解决方案,包括了Docker容器中文乱码(修改docker容器编码格式)的解决方案的使用技巧和注意事项,需要的朋友参考一下

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

  问题经过定位,发现后台代码的multipartfile类在执行transterto的方法时就发生了此异常,然而配置文件集中的multipartResolver以及encodingFilter均已经设置成了UTF-8,排除代码异常。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,之前出现的中文文件名乱码问题也没有了。

以上所述是小编给大家介绍的Docker容器中文乱码(修改docker容器编码格式)的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 「Allen 谈 Docker 系列」 DaoCloud 正在启动 Docker 技术系列文章,每周都会为大家推送一期真材实料的精选 Docker 文章。主讲人为 DaoCloud 核心开发团队成员 Allen(孙宏亮),他是 InfoQ 「Docker 源码分析」专栏作者,已出版《Docker 源码分析》一书。Allen 接触 Docker 近两年,爱钻研系统实现原理,及 Linux 操作系统。

  • 我正在使用一个Docker映像,该映像是使用USER命令构建的,用于使用名为的非root用户。在容器内部,我是“dev”,但我想编辑文件。 Docker容器中默认的根用户密码是什么?

  • 问题内容: 我使用的是Docker映像,该映像是使用USER命令构建的,以使用名为的非root用户。在容器内,我是“ dev”,但我想编辑该文件。 所以我需要成为根。我正在尝试su命令,但要求输入root密码。 Docker容器中默认的root用户密码是什么? 问题答案: 最终,我决定重建我的Docker映像,以便通过我知道的方式更改root密码。 要么

  • 如何编辑主机上下载的docker容器中的配置文件? 我正在使用本教程,但不确定在哪里可以找到并编辑traefik.toml文件

  • 本文向大家介绍Docker的MySQL容器时区问题修改,包括了Docker的MySQL容器时区问题修改的使用技巧和注意事项,需要的朋友参考一下 前言 阿航在开发Springboot项目时, 前端告诉验证码一直无效. 本地测试没有问题, 一看远程服务器的数据库时间, 哇塞–早了8小时. 很明显, 是MySQL的时区问题. 本篇文章就来记录下如何修改Docker 的 MySQL 容器时区. 解决方案

  • 如果这是可能的,怎么做? 我希望这些更改只修改容器内的规则,不影响任何其他容器,也不影响主机。