2015-10-07 21 views
0

我在我的index.jsp窗體標籤頁面上有一個文本框輸入字段。當我在我的文本框中插入字符,然後點擊提交按鈕後,它將我帶到其相應的servlet。從servlet我使用request.getParameter()獲得文本框的值。然後將該值顯示爲頁面上servlet的響應。但是在servlet響應中,它顯示了一個垃圾值:â€,而我想要輸出相同的字符()。如何處理java中的特殊字符jsp

文件:

的index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
     </head>  
<html>    
<body> 
<form action="hello.do" method="post"> 
<input type="text" name="t1"/><br> 
<input type="submit"/> 
</form> 
</body> 
</html> 

的servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     String s=request.getParameter("t1"); 
     response.setContentType("text/html"); 
     PrintWriter out=response.getWriter(); 
     out.println(s); 
     System.out.println("inside servlet: "+s); 
    } 
+1

嘗試 - 'response.setContentType(「text/html; charset = UTF-8」);' – hagrawal

+0

@JSK:請您測試Balus建議的答案,並讓我們知道結果。 – hagrawal

回答

-1

看起來你是不是在HTTPServletResponse得到正確編碼字符。

因此,您可以使用方法setCharacterEncoding("UTF-16LE")和servlet響應,它將響應的字符編碼(MIME字符集)發送到客戶端,例如UTF-8。如果字符編碼已由setContentType(java.lang.String)setLocale(java.util.Locale)設置,則此方法覆蓋它。

Ex。 response.setHeader("Content-Type", "text/xml; charset=UTF-16LE");

+0

這已經由JSP'pageEncoding'完成了。看到重複。 – BalusC