如何处理java jsp中的特殊字符

时间:2015-10-07 12:14:34

标签: java jsp servlets

我的index.jsp内部表单标签页上有一个文本框输入字段。当我在文本框中插入字符时,在点击提交按钮后,它会将我带到相应的servlet。从servlet我使用request.getParameter()得到文本框的值。然后在页面上显示该值作为来自servlet的响应。但是在servlet响应中它向我显示了一个垃圾值:â€而我想要输出相同的字符()。

文件:

的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 个答案:

答案 0 :(得分:-1)

看起来你没有在HTTPServletResponse中获得正确编码的字符。

因此,您可以将方法setCharacterEncoding("UTF-16LE")与servlet响应一起使用,该响应设置发送到客户端的响应的字符编码(MIME字符集),例如,设置为UTF-8。如果字符编码已由setContentType(java.lang.String)setLocale(java.util.Locale)设置,则此方法会覆盖它。

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