public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gbk");
response.setHeader("Cache-Control", "no-cache,no-store");
response.setHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT");
PrintWriter out = response.getWriter(); String filename = request.getParameter("filename"); URL urlfile;
BufferedReader in;
String content = "";
String inputLine;
try {
urlfile = new URL(filename);
InputStreamReader ss = new InputStreamReader(urlfile.openStream());
System.out.println("code="+ss.getEncoding());
in = new BufferedReader(new InputStreamReader(urlfile.openStream()));
inputLine =new String(in.readLine());
while (inputLine != null) {
content += inputLine;
inputLine = in.readLine();
}
    out.println(content);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }

解决方案 »

  1.   

    在你的Tomcat安装文件夹里的conf目录下有个server.xml,找到这一行
      <Connector
    port="8080"               maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
    看看这个URIEncoding设置
      

  2.   

    没有这个 URIEncoding="GBK"<Connector port="80" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" />
      

  3.   

    自己顶一下 哪位能回答哦! 
    我用JavaApplication执行中文是对的,为什么用Servlet执行就不对了呢?public static String Read(){
    String filename = "http://localhost/sf/test.html";

    URL urlfile;
    BufferedReader in;
    String content = "";
    String inputLine = null;
    try {
    urlfile = new URL(filename);
    // InputStreamReader ss = new InputStreamReader(urlfile.openStream());
    // System.out.println("code="+ss.getEncoding());
    in = new BufferedReader(new InputStreamReader(urlfile.openStream()));
    inputLine =new String(in.readLine());
    while (inputLine != null) {
    content += inputLine;
    inputLine = in.readLine();
    }

    } catch (MalformedURLException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return content;
    }
    public static void main(String args[]) {
    System.out.println(Read());
    }