我的servlet看起来像这样
protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
PrintWriter out=response.getWriter();
out.println("<Html><Head><Title>Signup</Title></Head>\n<Body>\n");
out.println("\u5982 电话\n");
out.println("</Body>\n</Html>");
}
我的浏览器可以显示其他网站的中文字符。 我正在尝试两种不同的方式来显示汉字,但它们都显示为??? 这样做的正确方法是什么?
答案 0 :(得分:1)
没有为响应设置显式编码。因此,响应将由具有ISO-8859-1的默认编码的容器写入。
因此,您需要使用HttpServletResponse.setCharacterEncoding()或HttpServletResponse.setContentType方法指定适当的字符编码。这可能是:
response.setCharacterEncoding("GB18030");
response.setContentType("text/html; charset=GB18030");
您也可以使用UTF-8作为显式编码。
答案 1 :(得分:0)
尝试添加
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
答案 2 :(得分:0)
您需要发送Unicode,让您的servlet发送UTF-8,并正确设置浏览器区域设置以正确解释字符。
答案 3 :(得分:0)
仅将字符编码设置为UTF-8就可以了。
response.setCharacterEncoding("UTF-8")