日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JSP亂碼問題及解決方法

JSP亂碼問題思考及解決方法

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比武隆網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式武隆網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋武隆地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。

一、引起亂碼的原因有:

1、響應(yīng)中的亂碼:即顯示頁面上的亂碼,如index.jsp顯示出來時,"用戶名"顯示為亂碼

2、表單提交時的亂碼:即在表單的文本框中輸入為中文的時候提交到服務(wù)出現(xiàn)亂碼

二、針對各原因的解決思路及方法:

1、響應(yīng)中的JSP亂碼:

說明:

(1).常見的編碼方式:

ISO-8859-1,GB18030,GB2312,UTF-8;

(2)pageEncoding的含義:

pageEncoding表示的是該JSP頁面的編碼,也就是你要保存一個JSP頁面,系統(tǒng)會以這個編碼來保存(我們知道文本文件另存為的時候會彈出一個提示窗口,你細(xì)心一下就會發(fā)現(xiàn)原來可以選擇不同的"編碼"來保存),
同理,JSP文件默認(rèn)保存的時候會以你設(shè)置的pageEncoding的屬性值保存該JSP頁面。
Eclipse中如果你設(shè)置了Window\preferences\jspfiles面版上的Encoding為某一個值如GB2312,則以后新建一個JSP文件的時候系統(tǒng)會自動加上pageEncoding="GB2312"這一屬性。

注意:pageEncoding="ISO-8859-1"的時候是不能保存中文的,就是說如果你設(shè)置為ISO-8859-1,但又想在JSP文件中寫一段中文,保存文件的時候會提示不能保存。

(3)JSP實(shí)現(xiàn)過程:

客戶提交URL請求如:www.WebTest.com/index.jsp

服務(wù)器接收到請求

服務(wù)器尋找本地文件index.jsp

服務(wù)器將index.jsp轉(zhuǎn)譯為index.java再編譯為index_jsp.class文件,并將其作為響應(yīng)發(fā)給客戶端

客戶端瀏覽器解釋執(zhí)行得到HTML代碼并顯示給客戶

由上可見,要解決響應(yīng)中的JSP亂碼問題要注意三點(diǎn):

I、對本地文件index.jsp的pageEncoding屬性檢查,因?yàn)榉?wù)器接到請求后首先是找這個文件。pageEncoding可設(shè)為GB18030,GB2312,UTF-8

II、JSP使用<%@pagecontentType="text/html;charset=GB2312"%>為響應(yīng)添加編碼信息,這里如果charset="ISO-8859-1",顯示出來的中文肯定是亂碼。

III、記得在中加入注意這句話應(yīng)是在之后的首句話,因?yàn)橛锌赡?title>中使用了中文,如果加在后,則title內(nèi)容顯示會出現(xiàn)亂碼。這里的charset值最好與contentType中的charset值一致。

經(jīng)過上面三步即可解決響應(yīng)亂碼即顯示出來的頁面中有亂碼的情況。

2、表單提交亂碼:

說明:

(1)表單的文本框中輸入為中文的時候提交到服務(wù)出現(xiàn)亂碼的主要原因是:表單提交即發(fā)送請求的過程中使用的編碼是ISO-8859-1.

表單提交方式有POST和GET,所以表單提交亂碼為POST亂碼和GET亂碼

I、POST亂碼

解決方法是在JSP頁面中加入語句:<%request.setCharacterEncoding("UTF-8");%>

II、GET亂碼

POST方式下的解決方式還算簡單,因?yàn)镻OST方式下提交的數(shù)據(jù)都是以二進(jìn)制的方式附加在http請求的body部分發(fā)送,只需要在后臺指定編碼格式就足矣解決。

GET方式下會將參數(shù)直接附加到url后面,這部分參數(shù)無法使用request.setCharacterEncoding()處理,結(jié)果就是get形式的所有中文都變成了亂碼。

這里只能對提交的內(nèi)容轉(zhuǎn)換成字節(jié)再轉(zhuǎn)換成另一編碼的字符:如下:

 
 
 
  1. <%  
  2. Stringusername=request.getParameter("username");  
  3. byte[]bytes=username.getBytes("iso-8859-1");  
  4. Stringresult=newString(bytes,"gb2312");  
  5. out.print(result);  
  6. %> 

理解起來很簡單:首先我要獲得與現(xiàn)有編碼不同的編碼的字符串,String類中構(gòu)造函數(shù):newString(byte[],charsetch);
那么現(xiàn)在我需要一個字節(jié)數(shù)組,即要對原來的字符串進(jìn)行轉(zhuǎn)換,從字符串變成字節(jié)數(shù)組,String類中的getBytes(charsetch)函數(shù)

所以結(jié)合起來就是:newString(username.getBytes("iso-8859-1"),"gb2312");


文章題目:JSP亂碼問題及解決方法
文章出自:http://www.dlmjj.cn/article/dhgjdsp.html