web开发时在浏览器上下载文件中文名字乱码问题
来源:互联网 发布:怎样属于数组下标越界 编辑:程序博客网 时间:2024/06/15 09:03
一直以来,编译器跟浏览器的中文编码问题都让我很头疼,今天我就做了一下总结,今后web开发下载文件的时候就不用担心乱码的问题了。 浏览器可以自己识别编码,是因为与Content-Disposition相互对应,如果一致就不会出现乱码问题了。 首先应该是IE浏览器,大多数人开发都会参照IE,因为没有过多的插件,可以最大限度的显示代码的缺点和BUG。 (1) IE浏览器使用的是直接urlencode,编写filename时格式如下: filename = URLEncoder.encode(filename,"UFT8"); response.setHeader("Content-disposition","attachment; filename="+ filename) 这样就可以正常编码 了。一般也适用于其他的浏览器。 (2)Opera浏览器,采用的是filename*的方式 new_filename* = "UTF-8"+filename (3) Safar浏览器采用的是ISO编码 filename = new String(filename.getBytes("UFT-8"),"ISO8859-1"); (4) Chrome浏览器,只能采用MimeUtility编码,或者ISO的中文输出 filename = MimeUtility.encodeText(filename,"UFT8","B"); (5) 火狐浏览器FireFox ,可以使用MimeUtility,ISO或者filename*的中文输出 另外判断是什么类型的浏览器可以同userAgent.indexOf("浏览器类型")来判断
String agent = request.getHeader("user-agent");if(agent.contains("Firefox")){fileNameDisplay = new String(fileNameDisplay.getBytes("GB2312"),"ISO-8859-1");} else {//encode后替换 解决空格问题 . encode后的内容 浏览器是如何解析的?fileNameDisplay = URLEncoder.encode(fileNameDisplay, "UTF-8").replaceAll("\\+", "%20");//fileNameDisplay = URLEncoder.encode(fileNameDisplay, "UTF-8");}response.addHeader("Content-Disposition", "attachment;filename=" + fileNameDisplay);
原文地址: http://blog.sina.com.cn/s/blog_b216acc90102vkq7.html
阅读全文
0 0
- web开发时在浏览器上下载文件中文名字乱码问题
- 解决PHP在IE浏览旗下载文件,中文文件名乱码问题
- 使用Content-Disposition: attachment; filename=FILENAME,在Firefox浏览器中下载文件,文件名中文乱码问题解决。
- 如何在GitHub上下载文件/仓库
- servlet中下载文件时url中有中文乱码
- 浏览器输入网址从FTP服务上下载文件
- 怎样从web服务器上下载文件(c#)
- 解决从GitHub上下载文件慢的问题
- java web中下载文件的问题
- 从网页上下载文件
- vc 网络上下载文件
- 从网络上下载文件
- 从服务器上下载文件
- Web开发中文乱码问题
- 解决WEB项目中文件上传中文乱码问题
- ASP项目中文件修改后,浏览器显示乱码问题
- PHP程序在浏览器中文乱码问题
- 正确处理浏览器在下载文件时HTTP头的编码问题(Content-Disposition)
- Android调用摄像机,保存图片,添加水印,适配5.0以上版本
- Hibernate中主键生成策略(<generator></gentrator>)的几种方式
- idea启动maven项目
- Lesson7 图形用户界面1
- C++入门:继承全解
- web开发时在浏览器上下载文件中文名字乱码问题
- 20171108
- js通过URL快速获取图片宽高的方法
- 机器学习从0到1入门实录
- tomcat部署多工程Singleton bean creation not allowed while the singletons of this factory are in destructi
- Python 列表list详解
- SparkStreaming整合Flume(二)Pull方式的整合
- 习题6.10
- Shortest Word Distance---LeetCode243