2015-10-07 3 views
0

У меня есть поле ввода текстового поля на моей index.jsp внутри страницы тега формы. Когда я вставляю символ в свое текстовое поле, то после нажатия кнопки «Отправить» он принимает меня к соответствующему servlet. Из сервлета я получаю значение текстового поля, используя request.getParameter(). А затем покажите это значение как ответ от сервлета на странице. Но в ответ сервлета он показывает мне ненужное значение: â€, тогда как я хотел получить тот же символ ().как обрабатывать специальные символы в 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> 

сервлет:

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

Try - 'response.setContentType (" text/html; charset = UTF-8 ");' – hagrawal

+0

@JSK: Не могли бы вы протестировать ответ, предложенный Balus, и, пожалуйста, сообщите нам результаты. – hagrawal

ответ

-1

Похоже, вы не получаете должным образом закодированный символ в HTTPServletResponse.

Таким образом, вы можете использовать метод setCharacterEncoding("UTF-16LE") с ответом сервлета, который устанавливает кодировку символов (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

Смежные вопросы