電腦重裝系統后,重新安裝了最新版的IDEA 2019.2.2,出現亂碼。百度了很多,慢慢的解決了亂碼的問題,現記錄如下。方法因人而異,不同的問題不一樣的方法。
第一 修改IDEA文件編碼格式
設置idea文件編碼格式
第二 IDEA中配置Tomcat
配置Tomcat時,VM options填入-Dfile.encoding=UTF-8
第三 修改IDEA的配置文件
IDEA的配置文件,找到idea64.exe.vmoptions或idea.exe.vmoptions,打開在最后添加-Dfile.encoding=UTF-8
第四 打印輸出亂碼、返回數據亂碼
都改好了,還是發現System.out.print("中文")打印到控制台是亂碼,接口返回的數據中文也是亂碼(配置了encodingFilter也不行)。如果你是maven工程,那么在你pom.xml文件添加如下代碼
<properties> <!-- 設置項目編碼 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
第五 Tomcat控制台亂碼修改Tomcat配置文件
java.util.logging.ConsoleHandler.encoding 改為 UTF-8,需第三步配合。
第六 Tomcat server.xml
如果請求亂碼,請考慮在箭頭處添加 URIEncoding=“UTF-8”
代碼中規定了Tomcat監聽HTTP請求的端口號等信息。在這里添加了一個屬性:URIEncoding。
將該屬性值設置為UTF-8,即可讓Tomcat(默認ISO-8859-1編碼)以UTF-8的編碼處理get請求,避免中文亂碼問題。
第七 Tomcat升級后打印log亂碼
如果是你升級后亂碼了,不用第五步第三步了。看Tomcat的日志配置文件,tomcat/conf/logging.properties
這個文件就是tomcat的日志配置文件,只需要修改這個文件。tomcat在新版的日志配置文件中加了指定編碼為UTF-8的配置。這就是亂碼的根源了。
- 將配置UTF-8那一行配置刪除(這樣應該就是采用操作系統默認編碼,Windows下即為GBK)
- 或不刪除,將UTF-8改為GBK