web中的乱码问题,文件下载资源
2011-11-07 19:57
232 查看
在计算机中,只有二进制的数据,不同字符对应二进制的规则,就是字符的编码。
常用字符集:Ascii码;iso8859-1码;gb2312和gbk;unicode;utf-8;
出现乱码的解决方案:
1、 以post方法提交的数据中有中文字符, 可以在获取请求参数值之前,调用request.setCharacterEncoding(“UTF-8”),指定请求正文使用的字符编码是UTF-8;
2、在向浏览器发送数据之前调用 response.setHeader("Content-Type", "text/html;charset=UTF-8");这是最好的一种解决方法
3、用OutputStream输出数字时出现乱码解决:response.getOutputStream().write((97+"").getBytes()); //97任意数字
4、response.getOutputStream().write("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">".getBytes());
response.getOutputStream().write("中国".getBytes("UTF-8"))。
当下载以中文名称的文件时出现乱码的解决方案:
设置消息头
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(file.getName(),"UTF-8"));
//URLEncoder.encode(String,String)方法是:使用指定的编码机制将字符串转换为
文件下载问题:
//文件下载,知道下载的资源
ServletContext context = this.getServletContext();
String path = context.getRealPath("/WEB-INF/classes/imagers/电话的爱.gif");
File file = new File(path);
InputStream is = new FileInputStream(file);
//response.setHeader("content-disposition","attachment;filename=" + file.getName());//乱码问题
response.setHeader("content-disposition","attachment;filename=" + URLEncoder.encode(file.getName(),"UTF-8"));
OutputStream os = response.getOutputStream();
byte buffer[] = new byte[1024];
int len=0;
while((len= is.read(buffer))!= -1){
os.write(buffer,0,len);
}
os.close();
is.close();
常用字符集:Ascii码;iso8859-1码;gb2312和gbk;unicode;utf-8;
出现乱码的解决方案:
1、 以post方法提交的数据中有中文字符, 可以在获取请求参数值之前,调用request.setCharacterEncoding(“UTF-8”),指定请求正文使用的字符编码是UTF-8;
2、在向浏览器发送数据之前调用 response.setHeader("Content-Type", "text/html;charset=UTF-8");这是最好的一种解决方法
3、用OutputStream输出数字时出现乱码解决:response.getOutputStream().write((97+"").getBytes()); //97任意数字
4、response.getOutputStream().write("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">".getBytes());
response.getOutputStream().write("中国".getBytes("UTF-8"))。
当下载以中文名称的文件时出现乱码的解决方案:
设置消息头
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(file.getName(),"UTF-8"));
//URLEncoder.encode(String,String)方法是:使用指定的编码机制将字符串转换为
application/x-www-form-urlencoded格式。
文件下载问题:
//文件下载,知道下载的资源
ServletContext context = this.getServletContext();
String path = context.getRealPath("/WEB-INF/classes/imagers/电话的爱.gif");
File file = new File(path);
InputStream is = new FileInputStream(file);
//response.setHeader("content-disposition","attachment;filename=" + file.getName());//乱码问题
response.setHeader("content-disposition","attachment;filename=" + URLEncoder.encode(file.getName(),"UTF-8"));
OutputStream os = response.getOutputStream();
byte buffer[] = new byte[1024];
int len=0;
while((len= is.read(buffer))!= -1){
os.write(buffer,0,len);
}
os.close();
is.close();
相关文章推荐
- web中的乱码问题,文件下载资源
- web开发时在浏览器上下载文件中文名字乱码问题
- HttpWebRequest下载文件,乱码问题解决方案
- 关于spring mvc web工程上传下载中文文件出现乱码的问题
- c# web 下载文件(解决中文文件名乱码问题)
- 使用FPT上传下载文件和解决中文名文件乱码问题
- 火狐浏览器下载文件中文乱码,文件名中的空格变加号("+")的问题
- WebRequest实现文件下载的一个RFC规范问题
- 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题
- 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题
- Maven工程中jetty插件运行web应用时静态资源文件修改不能实时生效的问题
- struts2 Annotation 实现文件下载功能 文件名中文乱码问题
- .net MVC 下载文件乱码问题解决方案
- Response下载文件时,火狐浏览器文件名乱码问题解决方法
- Resin3.1.6中rar文件下载乱码的问题解决方法
- Struts2 文件下载及中文乱码问题的解决方案(下载各种格式文件)
- 深入探究Android的WebView下载网络文件的盗链问题
- 下载文件中文乱码问题+路径斜杠问题
- springmvc web国际化i18n解决资源文件路径问题
- php中强制下载文件的代码(解决了IE下中文文件名乱码问题)