проблема кодировки символов в сервлете - PullRequest
0 голосов
/ 08 апреля 2011

Почему, когда я вызываю этот метод внутри сервлета (get или post)

public void read () throws IOException
{   
    try{
      File file = new File ("/text.txt");
      BufferedReader i = new BufferedReader(new InputStreamReader
                              (new FileInputStream(file),"UTF8"));
      String str1;
      while ((str1 = i.readLine()) != null)   {
          // Print the content on the console
          System.out.println (str1);
        } 

     }


      catch(UnsupportedEncodingException ue){

       System.out.println("Not supported : ");

  }
}

, консоль выдает знаки вопроса на всех японских и арабских символах.Однако, вызывая этот метод из класса с методом main, консоль просто выплевывает японские и арабские символы.Я использую сервер приложений websphere на рациональном разработчике приложений.

Обратите внимание, что этот метод отсутствует в сервлете, но является частью другого класса.

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

консоль выплевывает знаки вопроса на все символы японского и арабского языков

Необходимо настроить консоль на использование кодировки, которая охватывает эти символы.

Каксделать это зависит от того, кто управляет консолью.Если это, например, Eclipse, то вы можете сделать это, установив Window> Preferences> General> Workspace> Кодировка текстового файла в UTF-8.

enter image description here

0 голосов
/ 08 апреля 2011

В ответе сервлета вам нужно правильно установить заголовки. Нечто похожее на следующее.

response.setContentType("text/html; charset=utf-8");

проверка правильности набора символов для японских и арабских символов.

...