eclipse+tomcat,控制台中文亂碼


1.首先,檢查JSP頁面聲明的編碼是否正確,正確示例(注意標紅的地方):

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
    
    </body>
</html>

2.在確認步驟一沒有問題后,接下來檢查項目屬性編碼、 JSP 頁面屬性的編碼和 Java 文件的屬性編碼,項目屬性編碼和文件屬性編碼也需要統一設置為 UTF-8 

3.檢查 Tomcat 的編碼,需要把 Tomcat 的編碼也設置為 UTF-8,找到 Tomcat 安裝目錄下的 conf 目錄下的 server.xml 文件,如果沒有修改過 Tomcat 的端口,則直接搜索8080 ,找到對應的 Connector 標簽加上 URIEncoding 屬性,值為 UTF-8。Tomcat8以及later基本不用改,默認為utf-8.

4.是否因為遠程服務器發送過來的字符流是傳輸內容的UTF-8編碼,而客戶端獲得字符流后,以JVM默認的編碼重新解析為字符串,因服務器-客戶機編碼不一致,而導致了亂碼問題。

Java虛擬機中字符串編碼默認跟隨操作系統,中文版的Windows系統編碼為GBK,Linux系統為UTF8,如果需要手動設定編碼,可以在JVM啟動時添加以下參數:

-Dfile.encoding=UTF-8

新問題:添加以上參數后,java程序輸出到標准輸出(也就是常見的控制台)時,日志編碼也會是utf8,但MyEclipse的Console、Windows的cmd窗口,並不知道應該以UTF8編碼來解析jvm輸出的字符,所以會出來亂碼問題。為了讓JVM輸出編碼與控制台接收端保持一致,需要手動設置控制台接收編碼。

eclipse中右擊當前文件,run as---->run configuration------>common----->Encoding

或者如下圖所示,點擊綠色旁邊向下的三角,run configuration

5.是否因為eclipse 工作空間編碼格式

【Window】→【Preferences】→【General】→【Workspace】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM