Linux系统中文语言乱码,是很多小伙伴在开始接触Linux时经常遇到的问题,而且当我们将已在Wndows部署好的项目搬到Linux上运行时,Tomcat的输出日志中文全为乱码(在Windows上正常),看着非常心塞,那么我们应该怎么解决呢?

系统中文乱码

Tomcat输出日志中文乱码

系统环境CentOS 7.0 64位

jdk-8u11-linux-x64.

apache-tomcat-8.5.16

解决步骤:

1.安装中文语言包

先查看系统是否有安装中文语言包

# locale -a (列出所有可用的公共语言环境的名称)

若发现以上几项,说明系统已安装中文语言包,无需再安装,那这几项代表什么意思呢?

{语言代号}_{国家代号}.{字符集}

zh是中文的代号、CN是中国的代号、gb18030,gb2312,utf8是语言字符集

那么每一项可以通俗理解为 “你是说中文的,你在中国,语言字符集是gb18030/gb2312/utf8”

如果没有发现以上几项,则手动安装中文语言包

# yum install kde-l10n-Chinese (大概11M)

2.修改i18n国际化和locale.conf本土化配置文件

在修改配置文件之前,我们先看看当前系统语言环境

# locale

("en_US.UTF-8"按照上面的内容可以理解为“你说英语,你在美国,语言字符集为UTF-8”)

每项的意思分别为 :

LANG:当前系统的语言

LC_CTYPE:语言符号及其分类

LC_NUMERIC:数字

LC_COLLATE:比较和排序习惯

LC_TIME:时间显示格式

LC_MONETARY:货币单位

LC_MESSAGES:信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等

LC_NAME:姓名书写方式

LC_ADDRESS:地址书写方式

LC_TELEPHONE:电话号码书写方式

LC_MEASUREMENT:度量衡表达方式

LC_PAPER:默认纸张尺寸大小

LC_IDENTIFICATION:对locale自身包含信息的概述

LC_ALL:优先级最高变量,若设置了此变量,所有LC_* 和LANG变量会强制跟随它的值

我们看到虽然安装了中文语言包但本机的语言环境并不是中文,先修改i18n配置文件

# vim /etc/sysconfig/i18n

添加如下两行代码

LANG="zh_CN.UTF-8"

LC_ALL="zh_CN.UTF-8"

# source /etc/sysconfig/i18n

再修改 locale.cnf配置文件

# vim /etc/locale.conf

LANG="zh_CN.UTF-8"

# source /etc/locale.conf

重启系统

# reboot

3.设置终端连接编码

文件->打开->选中会话->右键->属性->终端 (我用的终端连接工具是Xshell,其它连接工具更改编码方式请自行百度)

将编码改为 UTF-8

重新连接,再查看当前系统语言环境

# locale

发现系统语言环境已经成功改为 “zh_CN.UTF-8”

再次尝试编辑中文

# vim 你是猪吗

# ls

SUCCESS!至此,系统中文乱码问题已解决。

4.解决Tomcat输出日志乱码

既然系统中文乱码已经解决了,那么Tomcat输出日志中文乱码会不会也解决了呢?

我们现在看看Tomcat输出日志

进入Tomcat目录

# cd $CATALINA_HOME

# tail -f ./logs/catalina.out

很遗憾,Tomcat日志中文还是乱码。

分析:既然系统已经不会出现中文乱码,证明系统语言环境是正常的,但是Tomcat日志还会出现中文乱码,说明是Tomcat内部的问题,网上查了一些资料,知道是JVM(Java Virtual Machine)

java虚拟机所用的字符集与系统所用的字符集不一致造成的,知道原因,问题就好解决了,可以通过配置JVM的启动参数来达到修改JVM所使用字符集的目的。

# ls -l ./bin/

找到 daemon.sh 和 catalina.sh 分别加入以下代码:

JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8"

# vim ./bin/daemon.sh

# vim ./bin/catalina.sh

保存退出,重启Tomcat

# ./bin/shutdown.sh

# ./bin/startup.sh

现在再查看输出日志

# tail -f ./logs/catalina.out

向服务器发一次请求

tomcat8日志乱码_Tomcat日志中文乱码怎么解决?相关推荐

  1. 解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

    解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码 方法 1 方法 2(不推荐) 笔者的环境: JDK 13.0.2 Maven 3.6.3 Tomcat 9.0.41(Se ...

  2. jmeter对乱码如何处理_JMeter中文乱码的解决

    对于JMeter中文乱码分为两部分: 1.请求(request):由于引用了csv文件当csv文件编码与JMeter不统一可能造成服务器收到数据的中文乱码 2.返回(response):由于服务器返回 ...

  3. 火狐浏览器中文乱码怎么办 Firefox中文乱码解决方法

    核心提示:最近好多网友反映在使用火狐浏览器的时候,网页显示乱码的情况,这种问题通常是由于我们浏览器语言的设置有关系,下面小编就为大家分析下具体的解决办法,希望对大家有所帮助. 火狐浏览器中文乱码怎么办 ...

  4. keil5中文乱码,编译中文乱码,串口调试助手接收中文乱码

    keil5中文乱码,编译中文乱码,串口调试助手接收中文乱码 keil5的文本编辑器输入中文乱码 一般更改编码就可以解决 打开设置界面 更改编码,可以是GBK码,也可以是UTF-8编码 编辑器中文没有乱 ...

  5. HTML编程出现乱码,html中文为什么会乱码?html中文乱码怎么解决?

    html中文乱码一般是因为编码格式不匹配.或没有设置编码造成的.解决方法:1.在HTML文件头中使用meta标签把HTML编码方式设置为utf-8:2.使用网页编辑器打开文件,设置统一的编码格式. 很 ...

  6. 为什么html中文是乱码?html中文乱码怎么解决

    很多程序员在开发网站的时候,都会遇到html文件出现乱码,那么,为什么html中文是乱码?html乱码怎么造成的?html中文乱码怎么解决呢,下面php高手为您解决这些问题. 打造全网web前端全栈资 ...

  7. Java解决下载中文乱码和URL中文乱码问题

    解决浏览器下载中文乱码和URL中文乱码问题 下载中文乱码问题 URL路径中含有中文处理方式: 下载中文乱码问题 中文乱码是个让人头痛的问题,这里整理针对下载时,中文乱码问题,下面是Java对应的实现, ...

  8. 日志 中文乱码、nacos 中文乱码、saltstack 中文乱码、docker中文乱码

    大家好,我是烤鸭: ​ 今天分享一个 saltstack 中文乱码 的问题. 问题说明 由于项目之前没有接入公司的发布系统,今天接入之后发现日志乱码,不仅如此,从nacos获取到的中文参数也是乱码.于 ...

  9. ssh汉字乱码怎么办_ssh中文乱码解决

    在终端执行命令: export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312是最有效的. ======================= 1.不管用那种ss ...

最新文章

  1. ARC中的三个关键字
  2. Python读入CIFAR-10数据库
  3. 计算机密码都有什么用,要不是他,你根本不会忘记密码。
  4. 深入理解JavaScript闭包(closure) 【收藏】
  5. Visual Studio会让嵌入式开发变得更香
  6. 关于feign开启hystrix导致用户鉴权失败
  7. 信息学奥赛一本通 1084:幂的末尾 | OpenJudge NOI 小学奥数 7833
  8. C#中的overload,overwrite,override的语义区别
  9. 【LeetCode】题解合集(JavaScript版)
  10. eclipse angularjs 插件安装
  11. mysql复合索引加锁_Mysql加锁过程详解
  12. 调和平均数的几何意义
  13. qq邮箱发件转发php,phpmailer 利用qq邮箱转发邮件的问题
  14. 标题优化的技巧是什么
  15. 【hadoop】汽车销售数据统计分析项目(部分)
  16. android 开发论坛资源URL
  17. 计算机上的计算器在那里了,电脑上的计算器在哪里打开(电脑快捷调出计算器的方法)...
  18. PIL打开PNG图片出现杂乱的条纹
  19. octobercms mysql_手把手教你选择一款适合自己的CMS/博客程序
  20. linux cp 排除文件,cp、tar命令排除文件和子目录 - 米扑博客

热门文章

  1. 基于TI TMS320F2837x系列的单/双核32位浮点MCU控制器+ Xilinx Spartan-6低功耗FPGA核心板
  2. 基于Python+Django的客户关系管理系统
  3. 专家:以大数据驱动慢病防控与管理
  4. linux 跳过overwrite确认
  5. Kaldi语音识别工具运行TIMIT数据库实例
  6. Excel-Python对数据进行线性回归
  7. 青云科技周小四:汽车行业云原生应用初探
  8. KubeSphere:坚持开源之路,让云原生越来越轻
  9. 小米手机通用卡刷线刷解锁BL注意事项ROOT权限获取刷机教程总结
  10. POJ 2763 Housewife Wind 笔记