JSP和Servlet對中文的處理過程(6)_JSP教程
推薦:困擾JSP的一些問題與解決方法如今每一個使用servlets的開發(fā)者都知道JSP,一種由Sun公司發(fā)明并花費大量精力加以推行并建構(gòu)在servlet技術(shù)之上的web技術(shù)。JSP將servlet中的html代碼脫離了出來,從而可以加速web應(yīng)用開發(fā)
奇怪了!為什么把設(shè)成GB2312和ISO8859-1是一個樣的,都能正確顯示?因為表4表5中的第2步和第5步互逆,是相互“抵消”的。只不過當(dāng)指定為ISO8859-1時,要增加第8步操作,殊為不便。
再看看不指定 時的情況。
表6 未指定Jsp-charset 時的變化過程
序號
步驟說明
結(jié)果
1
編寫JSP源文件,且存為GB2312格式
D6 D0 CE C4
(D6D0=中 CEC4=文)
2
jspc把JSP源文件轉(zhuǎn)化為臨時JAVA文件,并把字符串按照ISO8859-1映射到Unicode,并用UTF格式寫入JAVA文件中
C3 96 C3 90 C3 8E C3 84
3
把臨時JAVA文件編譯成CLASS文件
C3 96 C3 90 C3 8E C3 84
4
運行時,先從CLASS文件中用readUTF讀出字符串,在內(nèi)存中的是Unicode編碼
00 D6 00 D0 00 CE 00 C4
(啥都不是�。。。�
5
根據(jù)Jsp-charset=ISO8859-1把Unicode轉(zhuǎn)化為字節(jié)流
D6 D0 CE C4
6
把字節(jié)流輸出到IE中
D6 D0 CE C4
7
IE用發(fā)出請求時的頁面的編碼查看結(jié)果
視情況而定。如果是簡體中文,則能正確顯示,否則,需執(zhí)行表5中的第8步
Servlet:源文件為JAVA文件,格式是GB2312,源文件中含有“中文”這兩個漢字
如果=GB2312,=GB2312
表7 Compile-charset=Servlet-charset=GB2312 時的變化過程
序號
步驟說明
結(jié)果
1
編寫Servlet源文件,且存為GB2312格式
D6 D0 CE C4
(D6D0=中 CEC4=文)
2
用javac –encoding GB2312把JAVA源文件編譯成CLASS文件
E4 B8 AD E6 96 87�。║TF)
3
運行時,先從CLASS文件中用readUTF讀出字符串,在內(nèi)存中的是Unicode編碼
4E 2D 65 87 (Unicode)
4
根據(jù)Servlet-charset=GB2312把Unicode轉(zhuǎn)化為字節(jié)流
D6 D0 CE C4 (GB2312)
5
把字節(jié)流輸出到IE中并設(shè)置IE的編碼屬性為Servlet-charset=GB2312
D6 D0 CE C4 (GB2312)
6
IE用“簡體中文”查看結(jié)果
“中文”(正確顯示)
如果=ISO8859-1,=ISO8859-1
表8 Compile-charset=Servlet-charset=ISO8859-1時的變化過程
序號
步驟說明
結(jié)果
1
編寫Servlet源文件,且存為GB2312格式
D6 D0 CE C4
(D6D0=中 CEC4=文)
2
用javac –encoding ISO8859-1把JAVA源文件編譯成CLASS文件
C3 96 C3 90 C3 8E C3 84�。║TF)
3
運行時,先從CLASS文件中用readUTF讀出字符串,在內(nèi)存中的是Unicode編碼
00 D6 00 D0 00 CE 00 C4
(啥都不是!!!)
4
根據(jù)Servlet-charset=ISO8859-1把Unicode轉(zhuǎn)化為字節(jié)流
D6 D0 CE C4
5
把字節(jié)流輸出到IE中并設(shè)置IE的編碼屬性為Servlet-charset=ISO8859-1
D6 D0 CE C4 (GB2312)
6
IE用“西歐字符”查看結(jié)果
亂碼(原因同表5)
7
改變IE的頁面編碼為“簡體中文”
“中文”(正確顯示)
分享:JavaBean 在jsp和serlvle中傳遞技術(shù)要點javaBean 在jsp和serlvle中的傳遞技術(shù)要點 一、 初始化javaBean 1、 在jsp中 在上一段的代碼中執(zhí)行過程如下: ? 按照scope的參數(shù)尋找相同id的javabean,如果找到了就跳出該; ?
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實現(xiàn)
- 網(wǎng)頁模板:關(guān)于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關(guān)鏈接:
- 教程說明:
JSP教程-JSP和Servlet對中文的處理過程(6)
。