解决docker容器中文乱码,修改docker容器编码格式
2017-10-17 08:20
525 查看
原文地址:http://blog.csdn.net/u011077672/article/details/70569849,经过验证,该方法能够解决docker容器乱码的问题。测试时使用的环境是ubuntu12.04。
前台上传文件到服务器后,服务器返回给前台的文件列表中出现中文乱码,所有的中文文件名全部变成?,英文文件名则正常显示。
问题经过定位,发现后台代码的multipartfile类在执行transterto的方法时就发生了此异常,然而配置文件集中的multipartResolver以及encodingFilter均已经设置成了UTF-8,排除代码异常。kubectl exec进入到docker容器中进行查看时发现,文件在容器中也是中文文件名显示异常。查看docker容器编码格式:执行locale命令;可以看到当前编码格式为POSIX,而这种编码格式不支持中文
解决办法:locale -a查看容器所有语言环境
C.UTF-8可以支持中文,只需要把容器编码设置为C.UTF-8即可:
前台上传文件到服务器后,服务器返回给前台的文件列表中出现中文乱码,所有的中文文件名全部变成?,英文文件名则正常显示。
问题经过定位,发现后台代码的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/profile2.永久修改:修改Dockerfile
在Dockerfile中添加一行:
ENV LANG C.UTF-8重新制作docker镜像,docker run -ti [镜像] 进入容器后执行locale发现编码格式已经被修改为C.UTF-8,之前出现的中文文件名乱码问题也没有了。
相关文章推荐
- 解决docker容器中文乱码,修改docker容器编码格式
- Mac 修改MYSQL 的默认编码格式 解决中文插入MySql里乱码
- 不修改数据库编码格式的前提下解决emoji表情存储乱码问题
- Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)适用于centos 7
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题,亲测可用!)
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- 批量修改文件的编码格式-问题来自于用Source Insight打开项目时中文部分出现乱码
- jdbc连接数据库的时候,显示出乱码。所以修改my.ini下的编码格式,把utf-8改为gbk,但是保存的时候出现说my.ini拒绝访问的情况。保存不成功,希望大家能够帮我解决,谢谢!
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- 修改tomcat编码格式以及乱码的解决办法
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- (原创)Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)
- mysql5.5 解决中文乱码问题 修改默认编码为utf8
- MySQL 笔记 —— 中文乱码解决、修改mysql服务端编码
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- 【转贴】Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- 查看mysql数据库及表编码格式和解决中文乱码问题