Jsp頁面(page encoding)-根據Pageencoding-》的設置讀取JSP;翻譯成統壹的UTF java源代碼(即JAVA)——從JAVAC的JAVA源代碼編譯成JAVA字節碼——》;
編譯成UTF編碼的二進制代碼(即類)-Tomcat(或其應用程序容器)從第二階段-》加載並執行JAVA二進制代碼;將內容類型代碼輸出到瀏覽器。
頁面中輸入的參數用pageEncoding編碼。
頁面的默認編碼是什麽?
內容類型的默認編碼是什麽?
對各種文件進行編碼和解碼時使用什麽代碼?
響應集內容類型(text/charset = gb)是顯示頁面時設置的字符格式,請求集字符編碼(gb)是servlet接受請求後在請求中設置的字符格式,因為默認情況下,通過網絡傳輸的所有內容都是由iso編碼的。如果妳想防止中文在後處理過程中出現亂碼,妳必須對獲得的內容進行GB編碼。
JSP頁面編碼和內容類型屬性
JSP必須編碼兩次。在第壹階段,將使用pageEncoding。在第二階段,utf將用於utf。在第三階段,Tomcat的網頁將使用contentType。
JSP頁面中pageEncoding和contentType的區別
PageEncoding是jsp文件本身的編碼。
contentType的字符集是指服務器向客戶端發送內容時的內容編碼。
JSP必須編碼兩次。在第壹階段,將使用pageEncoding。在第二階段,utf將用於utf。在第三階段,Tomcat的網頁將使用contentType。
第壹階段是將jsp編譯成java,java將根據pageEncoding的設置讀取jsp,並根據指定的編碼方案將結果翻譯成統壹的UTF JAVA源代碼(即JAVA)。如果pageEncoding設置不正確或不正確,則是中文亂碼。
第二階段是從javaC的JAVA源代碼編譯成JAVA字節碼。無論編寫JSP時使用什麽編碼方案,這個階段的結果都是UTF編碼的java源代碼。
JAVAC使用UTF編碼來讀取java源代碼並將其編譯成UTF編碼二進制代碼(即類),這是JVM在java編碼中表達常量字符串的規範。
第三階段是Tomcat(或其應用程序容器)加載並執行第二階段輸出的JAVA二進制代碼的結果,即當客戶端看到它時,隱藏在第壹和第二階段中的參數contentType發揮作用。
內容類型的設置
默認情況下,PageEncoding和contentType都是ISO,如果您隨意設置其中壹個,另壹個將是相同的(TOMCAT就是這種情況),但這不是絕對的。這取決於各自JSP PC的處理方法,並且pageEncoding不等於contentType,這更有利於亞洲CJKV JSP頁面的開發和顯示(例如,pageEncoding=GB不等於contentType=utf)。
與java java不同,當被編譯器讀入時,jsp文件默認使用與操作系統設置的語言環境相對應的編碼。壹般來說,無論我們在Notepad還是ue中編寫代碼,如果沒有特殊的代碼轉換,所編寫的內容都是本地編碼格式的,因此編譯器采用的方法正好可以讓虛擬機獲得正確的數據。
但是,jsp文件不是這樣。它沒有這種默認的轉碼過程,但如果指定了pageEncoding,它可以正確轉碼。
例如
& lt%@頁content type = text/charset = utf % & gt;大都會打印出了亂碼,因為我輸入的hello是gbk的,但不知道服務器是否正確地抓住了妳。
但是如果妳把它改成
lishixinzhi/Article/program/Java/hx/201311/26477