tomcat日志中文亂碼問題及解決方案
平時(shí)在使用tomcat做一些服務(wù)的時(shí)候經(jīng)常遇到各種亂碼問題,要么是控制臺輸出亂碼或者輸出日志亂碼,要么頁面接收亂碼,非常煩人。
引起亂碼的原因多個(gè),從網(wǎng)上學(xué)習(xí)了很多,現(xiàn)在嘗試簡單總結(jié)給大家分享
一、頁面輸出亂碼
有三種可能
1.server.xml配置未注明編碼格式
瀏覽器本身有自己的顯示編碼格式,tomcat的輸出也有自己的格式,甚至我們在編寫代碼的過程中也可以指定輸出的編碼格式。所以這類原因?qū)е碌膩y碼,需要我們保持各種編碼格式統(tǒng)一:
- a.在tomcat中將server.xml 的我們所用的端口的配置添加URIEncoding=“UTF-8”

- b.在html的標(biāo)簽內(nèi)加上meta標(biāo)簽

- c.最好在編程中輸出頁面的時(shí)候指定編碼為UTF-8
2.catalina.bat的配置問題
在 omcatincatalina.bat這個(gè)配置文件中加上
set JAVA_OPTS=-Dfile.encoding=UTF-8
3.用編譯工具
在IDEA編譯器中的VM options:設(shè)置-Dfile.encoding=UTF-8,或eclipse 的設(shè)置中改成utf-8 輸出的問題可以解決
二、控制臺輸出亂碼
這個(gè)問題的原因是windows默認(rèn)編碼集為GBK,由于使用startup.bat啟動tomcat時(shí),它會讀取catalina.bat的代碼并打開一個(gè)新窗口運(yùn)行。
打開的cmd默認(rèn)編碼可能不是utf-8,與系統(tǒng)編碼不一致,所以導(dǎo)致亂碼。所以tomcat的命令框和輸出日志都是亂碼
解決的辦法有兩個(gè):
1.修改cmd命令行的編碼
- a.打開注冊表,找到HKEY_CURRENT_USER→Console→Tomcat
- b.找到CodePage項(xiàng),沒有則創(chuàng)建,更改值為十進(jìn)制的65001
2.修改logging.properties配置
- a.打開tomcat/conf/logging.properties
- b.添加語句:
java.util.logging.ConsoleHandler.encoding = GBK
- c.重啟tomcat,查看日志數(shù)據(jù)即可
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
tomcat獲取執(zhí)行的線程池信息和線程堆棧的方法詳解
這篇文章主要給大家介紹了tomcat獲取執(zhí)行的線程池信息和線程堆棧的方法,文章通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-11-11
使用jconsole監(jiān)聽遠(yuǎn)程Tomcat服務(wù)的方法
這篇文章主要介紹了使用jconsole監(jiān)聽遠(yuǎn)程Tomcat服務(wù),需要的朋友可以參考下2018-09-09
深入淺析Centos 7系統(tǒng)的Tomcat服務(wù)器
tomcat最初是由Sun的軟件架構(gòu)師詹姆斯 鄧肯 戴維森開發(fā)的。后來他幫助將其變?yōu)殚_源項(xiàng)目,并由Sun貢獻(xiàn)給Apache軟件基金會。這篇文章主要介紹了Centos 7系統(tǒng)的Tomcat服務(wù)器的相關(guān)知識,需要的朋友可以參考下2019-12-12
Tomcat?的核心腳本catalina.sh?和?startup.sh的關(guān)系及區(qū)別介紹
catalina.sh和startup.sh都是Tomcat的核心腳本,但它們的角色和使用場景有所不同,下面給大家介紹Tomcat的核心腳本catalina.sh和startup.sh的關(guān)系及區(qū)別介紹,感興趣的朋友跟隨小編一起看看吧2025-08-08
Centos環(huán)境下搭建Tomcat服務(wù)器的實(shí)戰(zhàn)詳解
這篇文章將從環(huán)境配置開始,為大家一步步講解如何安裝Java,配置環(huán)境變量,下載并啟動Tomcat,甚至包括一些常見問題的解決辦法,希望對大家有所幫助2025-05-05

