我的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);
}
答案 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");