文章正文

如何处理java中web系统里下载的文本文件里不支持GBK的问题?

来源:    2007-4-19 15:50:18 网友评论 0 条 字体:[ ] ~我要投稿!

如何处理java中web系统里下载的文本文件里不支持GBK的问题?

 

 

有时在应用里,我们需要从数据库中取出数据,然后生成一个文本文件,最后用户在页面上点击下载。如果文本文件里有一些不常用的字,那么这时我们就需要使用GBK编码,否则,那些不常用的字就会显示为“?”。
请看下面的例子:

 

<%response.setHeader("Content-type","APPLICATION/OCTET-STREAM;charset=GBK");
String atta_name="下载文本文件.txt";
response.setHeader("Content-disposition","attachment;filename="+new String(atta_name.getBytes("GB2312"),"ISO-8859-1"));
%><%@ page import="javax.servlet.ServletOutputStream,java.lang.Exception"%><%
String str="弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢弢";//这是什么字?我也不知道。
try{
ServletOutputStream sos = null;
sos = response.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(sos,"GBK"); 
ow.write(str); 
ow.flush(); 
ow.close();
}catch(Exception e){
 e.printStackTrace();
    out.println("error");
}
%>

 

 

为了方便,采用的是JSP,大家可以直接将以上代码存为JSP,运行测试。

以上代码的关键是OutputStreamWriter ow = new OutputStreamWriter(sos,"GBK");
如果没有这行,在输出的文件里就会显示为“?”。



上一篇:JavaScript极速狂飙:组合拼接字符串的效率
下一篇:WEB开发中的JAVA字符编码经验总结
用户名:新注册) 密码: 匿名评论 [所有评论]
评论内容:不能超过250字,请自觉遵守互联网相关政策法规。
本栏搜索

  • Google Chinesedocument.com
 网站首页 -  网站地图 -  技术论坛 -  网站投稿 -  广告服务 -  手机游戏
©2007 分享文档 Chinesedocument.com [京ICP备06000384号]