概述

docker部署java开发web项目。nohup显示打印日志出现中文乱码,中文显示为问号???。

环境

服务器系统:centos7、docker部署项目

具体操作如下

1.查看系统支持和默认的字符集,更新yum

locale -a #查看系统支持字符集
echo $LANG #查看默认字符集
yum update

2.下载中文包和对应的依赖包

yum install -y kde-l10n-Chinese
yum reinstall -y glibc-common
rpm -qa | grep glibc-common-2.17-222.el7.x86_64
yum groupinstall “fonts” -y
yum install -y system-config-language

3.添加UTF-8和GBK和GB2312字符集

localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
localedef -c -f GBK -i zh_CN zh_CN.GBK
localedef -c -f GB2312 -i zh_CN zh_CN.GB2312
locale -a #查看

4.修改系统字符集

echo ‘LANG=“zh_CN.UTF-8”’ > /etc/locale.conf #修改系统字符集
source /etc/locale.conf
echo ‘export LC_ALL=“zh_CN.utf8”’ >> /etc/profile
source /etc/profile

5.退出容器重启服务器

exit
reboot

6.检查容器字符集

echo $LANG
echo $LC_ALL
touch 中文.txt

后续一:重启容器使用nohup命令看日志发现还是乱码,再重启项目jar包反而不乱码了,emo了

思路:修改自启动系统文件(一般是/etc/rc.d/rc.local)中的java -jar命令(添加-Dfile.encoding=utf-8)

java -Dfile.encoding=utf-8 -jar xxx.jar --spring.profiles.active=pro >nohup.out &

前提条件是java项目Maven打包的时候添加依赖(原因:Java源代码->Java字节码->JVM->操作系统)
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

后续二:这样上述改后又出现问题了,发现数据库插入中文数据的时候数据库乱码了,emo++

经历:经尝试,发现docker run使用 /bin/bash命令初始化的时候会乱码和/usr/sbin/init命令不会,但是容器内很多服务不启动
思路:创建容器run的时候,给容器定义编码格式(添加’-e LANG=en_US.UTF-8’)

docker run -dit -p 映射端口:端口 --name=容器名 -e LANG=en_US.UTF-8 镜像名 /bin/bash

结束语:

人际的起点:一表人才(长相)两套西装(穿着打扮)
人际的媒介:三杯酒量(入肚的食物)四圈麻将(社交运动)
人际的交往:五方郊游(扩大范围)、六出祁山(深入往来)
人际的技巧:七术打马(有马屁味道但不是拍马屁)、八口吹牛(吹捧自己适可而止)
人际的修养:九分努力(不断的精进)、十分忍耐(努力不一定达到好的结果,所以要十分忍耐,最大的考验是忍辱负重)

docker容器中解决中文乱码(详解)相关推荐

  1. 如何解决oracle中文乱码问题,oracle中解决中文乱码问题

    中文乱码问题解决 1.查看服务器端编码 select userenv('language') from dual; 查到结果是: USERENV('LANGUAGE') --------------- ...

  2. python中解决中文乱码

    解决中文乱码 什么是字符编码 python 的字符编码 encode和decode unicode还可以decode吗? UTF-8还可以encode吗? 解决中文编码问题 问题1:使用request ...

  3. IDEA中解决中文乱码问题的方法

    在IDEA中创建的java项目,会遇到一些中文乱码问题.一般都是在控制台上会显示中文乱码. 则可以用以下几种方法进行操作. 第一种 在IDEA左上角File---->Setting中找到文件编码 ...

  4. Docker 安装mysql 解决中文乱码,数据持久化进入本地

    目录 一:简单版的(没有持久化,有乱码,直接run 的容器实例) 1.拉取镜像到本地 2.安装运行简单版 2.1.验证使用,建库建表插入数据 2.2外部Win10也来连接运行在dokcer上的mysq ...

  5. Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  6. jsp中解决中文乱码问题(基础问题)

    在两个jsp简单页面编写中,出现了一个问题,出现了中文乱码, 本应该出现的中文显示不出来,分析如下:java编程之所以会出现说出现中文乱码是 因为:Java的内核和class文件是基于unicode的 ...

  7. java输出的汉字变成乱码_Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  8. java web应用 生僻字_Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  9. mysql5.7乱码_mysql5.7中解决中文乱码的问题

    在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解 ...

最新文章

  1. CUDA 8混合精度编程
  2. k-means优化 k-means距离的选择 k-medoids对比
  3. 青龙羊毛——果园合集(快手+抖音)(教程)
  4. 课堂作业03--淘宝网质量属性
  5. 直播 背景 技术体系 乐视云直播Demo
  6. 自动化测试在CI CD管道中的作用
  7. python 2.7下的正则将中文分隔符去掉
  8. 在SQL中用正则表达式替换html标签
  9. 关于Dijkstra三种堆速度的研究
  10. 扩展欧几里得原理与模板
  11. php 便利字符串,Go语言遍历字符串——获取每一个字符串元素
  12. SmtpClient 类
  13. c语言 十进制转十六进制算法,十进制转十六进制算法
  14. 基于近似计算的同态加密方案CKKS17----实现库介绍
  15. 中国大学mooc微型计算机答案,微机系统-中国大学mooc-题库零氪
  16. srsLTE源码分析(一)---enb协议栈入口
  17. 深度学习的开胃菜——常用的机器学习知识梳理
  18. Xilinx平台Aurora IP介绍(汇总篇)
  19. Neo4J Cypher neo4j-driver py2neo介绍与使用
  20. win10安装office提示:错误1907 无法注册字体

热门文章

  1. 死了都要try.【转】
  2. scrapy框架爬取王者荣耀英雄数据
  3. [视频编码] 色彩空间
  4. 腾讯云11·11:千亿订单背后的安全“暗战”
  5. 每日新闻 | 华为首款5G手机今日正式开卖
  6. 测速C语言,测速显示C程序
  7. 抹掉数据时显示连接服务器失败,无法连接iCloud,连接icloud验证失败,icloud连接不到:《苹果抹掉数据验证失败》 苹果icloud怎么登陆不上?-南开游戏网...
  8. 8个最佳的JavaScript移动应用开发框架
  9. 数字化助力社区抗疫———物资管理系统
  10. Python 带你走进哈利波特的魔法世界