如何从Java servlet生成中文字符?

时间:2011-06-09 15:37:10

标签: java servlets character cjk

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

我的浏览器可以显示其他网站的中文字符。 我正在尝试两种不同的方式来显示汉字,但它们都显示为??? 这样做的正确方法是什么?

4 个答案:

答案 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")