Tomcat日志中文乱码怎么解决?
发布时间 - 2017-07-27 00:00:00 点击率:次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
向服务器发一次请求
# centos7
# 配置文件
# 几项
# 你在
# 解决了
# 重启
# 中国
# 看着
# 你是
# 你说
# 还会
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
做企业网站制作流程,企业网站制作基本流程有哪些?
如何快速生成凡客建站的专业级图册?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何用西部建站助手快速创建专业网站?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel如何创建自定义中间件?(Middleware代码示例)
南京网站制作费用,南京远驱官方网站?
制作旅游网站html,怎样注册旅游网站?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
如何在宝塔面板创建新站点?
如何用免费手机建站系统零基础打造专业网站?
如何用美橙互联一键搭建多站合一网站?
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
如何在阿里云服务器自主搭建网站?
Laravel如何实现API速率限制?(Rate Limiting教程)
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
如何快速搭建高效可靠的建站解决方案?
制作企业网站建设方案,怎样建设一个公司网站?
如何挑选高效建站主机与优质域名?
香港服务器选型指南:免备案配置与高效建站方案解析
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Laravel Docker环境搭建教程_Laravel Sail使用指南
重庆市网站制作公司,重庆招聘网站哪个好?
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
怎样使用JSON进行数据交换_它有什么限制
Python文本处理实践_日志清洗解析【指导】
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
如何自定义建站之星模板颜色并下载新样式?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
如何快速搭建高效服务器建站系统?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
深圳网站制作的公司有哪些,dido官方网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何快速查询网站的真实建站时间?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
Laravel如何生成API文档?(Swagger/OpenAPI教程)

