servlet上的字符编码问题

时间:2011-04-08 01:28:58

标签: string file servlets encoding character

为什么我在servlet中调用此方法(获取或发布)

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应用程序服务器。

注意,该方法不在servlet中,而是另一个类的一部分。

2 个答案:

答案 0 :(得分:1)

  

控制台在所有日语和阿拉伯语字符上吐出问号

您需要将控制台配置为使用涵盖这些字符的字符集。

如何做到这一点取决于谁在管理控制台。如果它是例如Eclipse,那么你可以通过设置 Window>来做到这一点。偏好>一般>工作区>文本文件编码为UTF-8。

enter image description here

答案 1 :(得分:0)

在Servlet响应中,您需要正确设置标头。类似于以下内容。

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

检查日本和阿拉伯字符的正确字符集。