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,之前出现的中文文件名乱码问题也没有了。

时间: 2024-11-03 22:02:23

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

详解Docker创建php开发环境遇到的权限问题解决方案_docker

最近我将公司的开发,和测试环境都运行到docker 上面,因为开发,测试基本都是装代码拉到本址,然后,再装目录,挂载到镜像目录中如:我用的是docker-compose # development.yml version: '2' services: php-fpm: image: jackluo/php-fpm:5.6.3 restart: always volumes: - ./www:/var/www/html - ./data:/usr/local/var/log extra_hosts

ajax获取数据中文乱码问题最简单的完美解决方案_AJAX相关

使用scriptCharset即可解决问题,用contentType就不一定可以了. 复制代码 代码如下: $.ajax({       url: testUrl,       dataType: 'jsonp',       type: 'post',       scriptCharset: 'utf-8'     }); 上面的解决方案是最完美的,另外也附上网上的解决方式吧,是用contentType来处理的 复制代码 代码如下: jQuery(form).ajaxSubmit({ url

ajax获取数据中文乱码问题最简单的完美解决方案

使用scriptCharset即可解决问题,用contentType就不一定可以了. 复制代码 代码如下: $.ajax({       url: testUrl,       dataType: 'jsonp',       type: 'post',       scriptCharset: 'utf-8'     }); 上面的解决方案是最完美的,另外也附上网上的解决方式吧,是用contentType来处理的 复制代码 代码如下: jQuery(form).ajaxSubmit({ url

Docker容器 日志中文乱码问题解决办法_docker

Docker容器 日志中文乱码问题解决办法 1. 找到dockerfile文件, 如 /use/local/src/Docker/Dockerfile 2. 编辑Dockerfile 添加 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 3. 生成新的镜像文件 docker build -t centos7 . 4. 使用docker images查看新生成的镜像 5. 使用新的镜像启动容器 docker run

windows server 2008 导出excel中文乱码

问题描述 windows server 2008 导出excel中文乱码 代码在本地运行没有问题,本地是win7 32位系统.发布到服务器上时会出现中文乱码.原因是编码格式不正确 解决方案http://support.microsoft.com/kb/954406#appliesto这里有一个微软提供的.但是治标不治本.在后台代码上设定编码没用,windows server 2008导出excel默认编码格式为:西欧(windows) 而windows server 2008要用Unicode.

JAVA导Excel到Mysql传参中文乱码

问题描述 问题是这样:我把Excel里面一列中文查找出来放在数组里面,然后遍历数组,去数据库中查其对应的字典值SQL语句:SELECTT.NID,T.NAMEFROMTRADE_DIC_TYPETWHERET.NAMELIKE?然后ps.setString(Arr.get[i]);//Arr.get[i]是中文然后再后台打印出来的sql语句里面"?"部分是乱码请问这个怎么解决? 解决方案 解决方案二:ps.setString(Arr.get[i]);这句应该是ps.setString(

修改docker的镜像容器存储路径步骤

默认docker的存储路径在: /var/lib/docker# docker infoContainers: 1Images: 41Storage Driver: aufsRoot Dir: /var/lib/docker/aufsDirs: 43Execution Driver: native-0.2Kernel Version: 3.13.0-32-genericWARNING: No swap limit support 可以这样: service stop docker.io mv /

在Docker容器中不需要运行sshd的原因浅析_docker

当开始使用Docker时,人们经常问:"我该如何进入容器?",其他人会说"在你的容器里运行一个SSH服务器".但是,从这篇博文中你将会了解到你根本不需要运行SSHd守护进程来进入你的容器.当然,除非你的容器就是一个SSH服务器. 运行SSH服务器是很想当然的,因为它提供了进入容器的简便方式.在我们公司基本上每个人都最少使用过一次SSH.我们中有很大一部分人每天都会使用它,并且他们很熟悉公钥与私钥,无密码登录,密钥代理,甚至有时会使用端口转发和其他不常用的功能.正因如

《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——第1章 使用Docker对应用进行容器化 1.1了解容器化应用的优缺点

第1章 使用Docker对应用进行容器化 Docker为应用程序的打包和运行提供了一种优雅的方式.使用喜欢的Linux系统,几分钟之内就能将Docker安装好并作为服务运行起来.构建.运行.停止.启动.调查.修改或者用其他的方式操作容器非常容易,说实话,很棒. Docker的简单易用使其成为当今最流行的开源项目之一.但是作为数据中心容器化核心的Docker却引起了极大的震动,其潜力无异于重新发明了个人和公司(或大或小)创建.测试.部署和管理其最关键应用程序的方式. 使用容器化技术也可以让应用程序