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

首頁 > 編程 > JSP > 正文

JSP頁面顯示亂碼問題的解決

2024-09-05 00:20:16
字體:
來源:轉載
供稿:網友

  大家在jsp的開發過程中,經常出現中文亂碼的問題,可能一至困擾著您,我現在把我在jsp開發中遇到的中文亂碼的問題及解決辦法寫出來供大家參考。

  一、jsp頁面顯示亂碼

  下面的顯示頁面(display.jsp)就出現亂碼:

<html>
<head>
<title>jsp的中文處理</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>

<body>
<%
out.print("jsp的中文處理");
%>
</body>
</html>

  對不同的web服務器和不同的jdk版本,處理結果就不一樣。原因:服務器使用的編碼方式不同和瀏覽器對不同的字符顯示結果不同而導致的。解決辦法:在jsp頁面中指定編碼方式(gb2312),即在頁面的第一行加上:<%@ page contenttype="text/html; charset=gb2312"%>,就可以消除亂碼了。完整頁面如下:

<%@ page contenttype="text/html; charset=gb2312"%>
<html>
<head>
<title>jsp的中文處理</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body>
<%
out.print("jsp的中文處理");
%>
</body>
</html>

  二、表單提交中文時出現亂碼

  下面是一個提交頁面(submit.jsp),代碼如下:

<html>
<head>
<title>jsp的中文處理</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body>
<form name="form1" method="post" action="process.jsp">
<div align="center">
<input type="text" name="name">
<input type="submit" name="submit" value="submit">
</div>
</form>
</body>
</html>

  下面是處理頁面(process.jsp)代碼:

<%@ page contenttype="text/html; charset=gb2312"%>
<html>
<head>
<title>jsp的中文處理</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>

<body>
<%=request.getparameter("name")%>
</body>
</html>

  如果submit.jsp提交英文字符能正確顯示,如果提交中文時就會出現亂碼。原因:瀏覽器默認使用utf-8編碼方式來發送請求,而utf-8和gb2312編碼方式表示字符時不一樣,這樣就出現了不能識別字符。解決辦法:通過request.secharacterencoding("gb2312")對請求進行統一編碼,就實現了中文的正常顯示。修改后的process.jsp代碼如下:

<%@ page contenttype="text/html; charset=gb2312"%>
<%
request.secharacterencoding("gb2312");
%>
<html>
<head>
<title>jsp的中文處理</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body>
<%=request.getparameter("name")%>
</body>
</html>

  三、數據庫連接出現亂碼

  只要涉及中文的地方全部是亂碼,解決辦法:在數據庫的數據庫url中加上useunicode=true&characterencoding=gbk就ok了。

  四、數據庫的顯示亂碼

  在mysql4.1.0中,varchar類型,text類型就會出現中文亂碼,對于varchar類型把它設為binary屬性就可以解決中文問題,對于text類型就要用一個編碼轉換類來處理,實現如下:

public class convert {
/** 把iso-8859-1碼轉換成gb2312
*/
public static string isotogb(string iso){
string gb;
try{
if(iso.equals("") || iso == null){
return "";
}
else{
iso = iso.trim();
gb = new string(iso.getbytes("iso-8859-1"),"gb2312");
return gb;
}
}
catch(exception e){
system.err.print("編碼轉換錯誤:"+e.getmessage());
return "";
}
}
}

  把它編譯成class,就可以調用convert類的靜態方法isotogb()來轉換編碼。

商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 砀山县| 通化县| 商丘市| 梁河县| 京山县| 布拖县| 乌鲁木齐县| 包头市| 常熟市| 朝阳区| 随州市| 隆昌县| 张家口市| 珠海市| 北海市| 上思县| 石柱| 施甸县| 资中县| 闵行区| 灵丘县| 驻马店市| 封开县| 邵阳县| 固镇县| 淮南市| 璧山县| 佛教| 隆化县| 锡林浩特市| 西畴县| 沙雅县| 富川| 晋宁县| 万盛区| 光泽县| 靖边县| 抚松县| 蚌埠市| 溧水县| 阳泉市|