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

首頁 > 編程 > JSP > 正文

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

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

一、jsp頁面顯示亂碼

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

三、數據庫連接時出現亂碼

大家在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 string iso2gb(string qs) { try{ if (qs == null) return "null"; else { return new string(qs.getbytes("iso-8859-1"),"gb2312"); } } catch(exception e){ system.err.println("iso2gb error:"+e.getmessage()); } return "null"; } public string gb2iso(string qs) { try { if (qs == null) return "null"; else { return new string(qs.getbytes("gb2312"),"iso-8859-1"); } } catch(exception e){ system.err.println("gb2iso error:"+e.getmessage());} return "null"; }

字符存入數據庫時用 gb2iso()函數,將字符從數據庫取出時,再用 iso2gb()函數。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰安市| 永济市| 丽江市| 永靖县| 通榆县| 奉新县| 富锦市| 古浪县| 平塘县| 容城县| 久治县| 谷城县| 荆门市| 阿巴嘎旗| 鄱阳县| 博客| 汝城县| 法库县| 化州市| 辽阳县| 汨罗市| 叶城县| 瑞丽市| 旬阳县| 静海县| 台湾省| 民乐县| 灵宝市| 大悟县| 喀喇| 彭山县| 诸暨市| 辽中县| 商城县| 台北县| 澜沧| 涡阳县| 德保县| 平原县| 衡南县| 凤山市|