0

0

Tomcat日志中文乱码怎么解决?

零下一度

零下一度

发布时间:2017-07-27 15:27:44

|

5571人浏览过

|

来源于php中文网

原创

   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 

                    

OneAI
OneAI

将生成式AI技术打包为API,整合到企业产品和服务中

下载

     发现系统语言环境已经成功改为 “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

  向服务器发一次请求

相关专题

更多
微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

2

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

74

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

133

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

106

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

44

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

11

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.8万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.6万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号