『壹』 jsp高手請進,我用jspsmartupload上傳文件,但我表單獲得的中文是亂碼(UTF-8)的,如何解決
頁面最頂部聲明頁面的編碼格式:
請問你伺服器是windows還是linux,
如果是linux:<%@ page contentType="text/html;charset=utf-8" language="java" %>試試
如果是windows:<%@ page contentType="text/html;charset=GBK" language="java" %>試試
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.upload();//必須放在獲得表單參數之前
su.getRequest().getParameter("addsubmit")//獲得request參數
com.jspsmart.upload.File files = su.getFiles().getFile(0);
String fileName = new String(files.getFileName());//獲得名稱
我這邊服務在windows平台時只用修改頁面編碼格式為GBK就一切OK,但是在linux下需要吧頁面編碼格式改為UTF-8
另外,form表單中的file文件名可能從request得不到,需要通過SmartUpload 類獲得文件名,類似上面處理,因為: ENCTYPE="multipart/form-data"
『貳』 為什麼JSP頁面出現亂碼 該如何解決
大家在JSP的開發過程中,經常出現中文亂碼的問題,可能一至困擾著您,我現在把我在JSP開發中遇到的中文亂碼的問題及解決辦法寫出來供大家參考。
一、JSP頁面顯示亂碼
下面的顯示頁面(display.jsp)就出現亂碼:<html<head<titleJSP的中文處理</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<titleJSP的中文處理</title
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"</head<body<%out.print("JSP的中文處理");%</body</html二、表單提交中文時出現亂碼
下面是一個提交頁面(submit.jsp),代碼如下:<html<head<titleJSP的中文處理</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<titleJSP的中文處理</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編碼方式表示字元時不一樣,這樣就出現了不能識
『叄』 怎麼解決jsp頁面get傳值中文亂碼問題
第一步來:在tomcat 的server.xml文件中設置源web伺服器埠配製中加下面兩句:
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
第二步:JSP頁面編碼用UTF-8(也可以用「gb2312",第一步與解碼要一至)傳值時編碼一下:
以傳遞的參數為strPar為例, 在傳遞數據前將strPar進行編碼java.net.URLEncoder.encode(strPar,"UTF-8");
第二步:解碼 在獲取數據伺服器端Action中得到的strPar進行解碼java.net.URLDecoder.decode(strPar,"UTF-8");
本人測試時傳入action中可以不解碼也正常。
舉例:
Url傳值:
<a href="myPage.jsp?strPar=<%=java.net.URLEncoder.encode("中文參數值","UTF-8")%>">點擊這里</a>
//下面是解碼
String cnStr=java.net.URLDecoder.decode(strPar,"GB2312");
『肆』 jsp表單提交到servlet中文亂碼怎麼處理
1、jsp中得頁面上可以設置,建議設置為utf-8或GBK;
2、如果用js傳的話,應內該用encodeURI(encodeURI(「」))加密;
3、在servlet中可以用容
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");
然後獲得jsp中提交的參數;
『伍』 jsp 表單提交中文數據亂碼怎麼解決呢
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>