Как генерировать китайские символы из сервлета Java? - PullRequest
0 голосов
/ 09 июня 2011

Мой сервлет выглядит так

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

Мой браузер может отображать китайские иероглифы с других сайтов. Я пробую 2 разных способа отображения китайских иероглифов, но все они отображаются как ??? Как правильно это сделать?

Ответы [ 4 ]

1 голос
/ 09 июня 2011

Для ответа не задана явная кодировка.Поэтому ответ будет записан контейнером с кодировкой по умолчанию ISO-8859-1.

Поэтому вам необходимо указать соответствующую кодировку символов с помощью HttpServletResponse.setCharacterEncoding () или HttpServletResponse.setContentType методы.Это может быть либо:

response.setCharacterEncoding("GB18030");
response.setContentType("text/html; charset=GB18030");

Вы также можете использовать UTF-8 в качестве явной кодировки.

0 голосов
/ 13 сентября 2018

Просто установка кодировки символов как UTF-8 работала для меня.

response.setCharacterEncoding("UTF-8")
0 голосов
/ 09 июня 2011

Вам потребуется отправить Unicode, ваш сервлет должен отправить UTF-8 и правильно настроить локаль браузера для правильной интерпретации символов.

0 голосов
/ 09 июня 2011

Попробуйте добавить

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
...