Servlet实现文件下载的编码问题 10
我用jsp+Servlet写了个文件下载的程序,把网页上的特定div里的内容保存成txt文件,但是保存下来的txt文件中中文都是问号,代码如下:publicvoiddoP...
我用jsp+Servlet写了个文件下载的程序,把网页上的特定div里的内容保存成txt文件,但是保存下来的txt文件中中文都是问号,代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException )
request.setCharacterEncoding("gb2312");
String value= request.getParameter("value");
String savingType=request.getParameter("btn");
String name="DefaultFileName.txt";
String filename=this.getServletContext().getRealPath("/")+"file"+File.separator+name;
File file=new File(filename);
if(!file.getParentFile().exists())
file.getParentFile().mkdir();
if(savingType.equals("save as")){ //这里是另存为到客户端 中文显示乱码
response.setContentType("text/txt");
response.setHeader("Content-Disposition", "attachment;filename=DefaultFileName.txt");
response.setCharacterEncoding("gb2312");
response.getOutputStream().write(value.getBytes());
}else if(savingType.equals("save")){
PrintStream ps= null; //这里是保存到服务器上 中文显示成问号
ps = new PrintStream(new FileOutputStream(file));
ps.println(value);
ps.close();
PrintWriter out =response.getWriter(); //这里的返回值value通过alert方法打印出来
out.print(value); //的时候中文显示正常
}
对编码不是很懂,希望给出的回答能详细点,最好有代码,谢谢 展开
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException )
request.setCharacterEncoding("gb2312");
String value= request.getParameter("value");
String savingType=request.getParameter("btn");
String name="DefaultFileName.txt";
String filename=this.getServletContext().getRealPath("/")+"file"+File.separator+name;
File file=new File(filename);
if(!file.getParentFile().exists())
file.getParentFile().mkdir();
if(savingType.equals("save as")){ //这里是另存为到客户端 中文显示乱码
response.setContentType("text/txt");
response.setHeader("Content-Disposition", "attachment;filename=DefaultFileName.txt");
response.setCharacterEncoding("gb2312");
response.getOutputStream().write(value.getBytes());
}else if(savingType.equals("save")){
PrintStream ps= null; //这里是保存到服务器上 中文显示成问号
ps = new PrintStream(new FileOutputStream(file));
ps.println(value);
ps.close();
PrintWriter out =response.getWriter(); //这里的返回值value通过alert方法打印出来
out.print(value); //的时候中文显示正常
}
对编码不是很懂,希望给出的回答能详细点,最好有代码,谢谢 展开
展开全部
这里可能的问题是,页面部分的编码不是gb2312你可以在写页面代码时注意这些内容:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>....</title>
....
</head>
<body>
....
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>....</title>
....
</head>
<body>
....
</body>
</html>
追问
页面部分的编码就是gb2312 刚刚忘了说了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-19
展开全部
根据网页的编码,相应解码、转码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询