web中的乱码问题,文件下载资源
2011-10-20 21:41
260 查看
在计算机中,只有二进制的数据,不同字符对应二进制的规则,就是字符的编码。
常用字符集: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中的乱码问题,文件下载资源
- 关于spring mvc web工程上传下载中文文件出现乱码的问题
- web开发时在浏览器上下载文件中文名字乱码问题
- c# web 下载文件(解决中文文件名乱码问题)
- HttpWebRequest下载文件,乱码问题解决方案
- 下载文件乱码问题
- java文件下载的中文文件名乱码问题的解决
- 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题
- JavaWeb中读取文件资源的路径问题
- struts 2 实现文件下载 中文乱码问题
- 关于java文件下载文件名乱码问题解决方案
- 在Servlet中以下载的方式向浏览器写数据--中文文件乱码问题解决
- Nodejs下载文件文件名中文乱码问题解决方案
- 关于java文件下载文件名乱码问题解决方案
- 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题
- 下载excel文件名字乱码问题处理
- jsp实现文件下载与中文文件名乱码问题解决
- Response下载文件,中文文件名乱码问题
- java web应用文件下载(包括中文文件名乱码处理)
- Linux部署Web应用程序超链接下载中文名称文件404问题解决办法