您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“JSP中文亂碼問題在編程中的解決方法”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
JSP中文亂碼問題常會讓人心亂如麻,尤其是對于JSP入門的初級編程愛好者來說甚至是不知所措。
對于JSP中文處理的常見對策,在網(wǎng)上經(jīng)??梢姷闹饕窍旅?種:
﹤%@ page contentType="text/html;charset=gb2312" %﹥
或者:
﹤% String Hi="你好"; byte[] tmpbyte=Hi.getBytes("ISO8859_1"); Hi=new String(tmpbyte); out.print(Hi); %﹥
虛擬小龍亭也主要采用了上面2種方法進行了修改,從而變成了1.1版。
通過簡單總結(jié),示例中的JSP中文亂碼問題發(fā)生于以下幾個地方:
◆在URL附帶中文參數(shù),可以直接讀取。
例如:
﹤%= request.getParameter("showword")%﹥
◆與數(shù)據(jù)庫有關(guān)的各種sql操作
這里使用的Access沒有發(fā)生問題。
◆讀取HTML
form表單中遞交的中文值
在jswdk中需要加以編碼,較為簡潔的寫法如:
String name1=new String(request.getParameter("user_id").getBytes("ISO8859_1"));
另外,在jdk1.3的支持下,不需要加入
﹤%@ page contentType="text/html;charset=gb2312"%﹥
而在jdk1.2.2下面,即使2種方法同時運用也很不穩(wěn)定。
而在resin平臺,情況較好。只要在頁面***行加入:
﹤%@ page contentType="text/html;charset=gb2312"%﹥
即可正確處理JSP中文亂碼問題。
如果再加編碼則反而不對。
◆session中包含的中文
在jswdk中,奇怪的是如果從form中讀出的值經(jīng)過編碼則可正確顯示;
但直接賦予中文值則不行。
resin平臺很好,同上。
◆對于對變量賦中文值后正確顯示中文。
例如以下程序:
﹤%@ page contentType="text/html;charset=gb2312"%﹥ ﹤html﹥﹤head﹥﹤/head﹥﹤body﹥ ﹤% String Hi="你好"; byte[] tmpbyte=Hi.getBytes("ISO8859_1"); Hi=new String(tmpbyte); out.print(Hi); %﹥ ﹤/body﹥﹤/html﹥
同樣是jswdk1.0.1,以上的表示方法在jdk1.2.2中沒有問題,但在jdk1.3下卻無法顯示。
resin平臺很好,同上,經(jīng)過測試,只需要在﹤head﹥中補上
﹤meta http-equiv="Content-Type" content="text/html;charset=gb2312"﹥
而不需要
﹤%@ pagecontentType="text/html;charset=gb2312" %﹥
也能正確顯示中文。
體會:
jswdk也許只能用于普通開發(fā),穩(wěn)定性和其它問題可能不如商業(yè)軟件。
由于jdk1.3版性能要好于jdk1.2.2很多倍,并且對中文的支持也較好,所以應(yīng)該加以采用。
作為免費的商業(yè)軟件,resin不僅速度快,穩(wěn)定,自動編譯,可指出出錯行,可在服務(wù)器端支持使用javascript等,而且,至少我覺得對中文的支持很好。
當(dāng)然,如果不必做任何處理即可避免JSP中文亂碼問題將是我們所期待的。
另外,相信在unix/linux/solaris下應(yīng)該沒有這樣的問題。
“JSP中文亂碼問題在編程中的解決方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。