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();
} }
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
看看这个URIEncoding设置
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
我用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());
}