国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

技巧:JSP中處理中文亂碼的詳細(xì)講解

2024-09-05 00:19:44
字體:
供稿:網(wǎng)友

在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);
%>

通過簡單總結(jié),示例中的中文處理發(fā)生于以下幾個地方:

1 在url附帶中文參數(shù),可以直接讀取。

例如:

<%= request.getparameter("showword")%>

2 與數(shù)據(jù)庫有關(guān)的各種sql操作

這里使用的access沒有發(fā)生問題。

3 讀取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"
%>

即可正確處理中文。
如果再加編碼則反而不對。

5 session中包含的中文

在jswdk中,奇怪的是如果從form中讀出的值經(jīng)過編碼則可正確顯示;
但直接賦予中文值則不行。

resin平臺很好,同上。

6 對于對變量賦中文值后正確顯示中文。

例如以下程序:

<%@ 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">

而不需要

<%@ page
contenttype="text/html;charset=gb2312" %>也能正確顯示中文。

體會:

jswdk也許只能用于普通開發(fā),穩(wěn)定性和其它問題可能不如商業(yè)軟件。
由于jdk1.3版性能要好于jdk1.2.2很多倍,并且對中文的支持也較好,所以應(yīng)該加以采用。

作為免費的商業(yè)軟件,resin不僅速度快,穩(wěn)定,自動編譯,可指出出錯行,可在服務(wù)器端支持使用javascript等,而且,至少我覺得對中文的支持很好。

當(dāng)然,如果不必做任何處理即可正確顯示中文將是我們所期待的。

另外,相信在unix/linux/solaris下應(yīng)該沒有這樣的問題。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 探索| 仲巴县| 凤翔县| 东乌| 油尖旺区| 陕西省| 武强县| 正阳县| 孟津县| 贡觉县| 武功县| 合川市| 金溪县| 万荣县| 大名县| 安陆市| 稷山县| 洪江市| 定兴县| 邵东县| 辉县市| 白玉县| 富蕴县| 克拉玛依市| 荣昌县| 儋州市| 康定县| 佛冈县| 富裕县| 巨鹿县| 西贡区| 宜宾市| 科技| 双流县| 梅河口市| 鸡东县| 弥渡县| 江源县| 安西县| 呼玛县| 临澧县|