/**
* 根据浏览器的不同,下载文件名的中文的转换
* @param filename
* @return
*/
public String saveFileName(String filename){
HttpServletRequest request=(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String agent = request.getHeader("user-agent");
StringTokenizer st = new StringTokenizer(agent,";");
st.nextToken();
String userAgent = st.nextToken();//得到用户的浏览器名
try {
String new_filename = new String(filename.getBytes("UTF-8"),"ISO8859-1");
// 如果没有UA,则默认使用IE的方式进行编码,因为毕竟IE还是占多数的
String rtn = new_filename;
if (userAgent != null)
{
userAgent = userAgent.toLowerCase();
// IE浏览器,只能采用URLEncoder编码
if (userAgent.indexOf("msie") != -1)
{
rtn = URLEncoder.encode(filename, "UTF8");
}
// Opera浏览器只能采用filename*
else if (userAgent.indexOf("opera") != -1)
{
rtn = "*=UTF-8''" + URLEncoder.encode(filename, "UTF8");
}
// Safari浏览器,只能采用ISO编码的中文输出
else if (userAgent.indexOf("safari") != -1 )
{
rtn = new String(filename.getBytes("UTF-8"),"ISO8859-1");
}
// Chrome浏览器,只能采用MimeUtility编码或ISO编码的中文输出
else if (userAgent.indexOf("applewebkit") != -1 )
{
new_filename = MimeUtility.encodeText(filename, "UTF8", "B");
rtn = new_filename ;
}
// FireFox浏览器,可以使用MimeUtility或filename*或ISO编码的中文输出
else if (userAgent.indexOf("mozilla") != -1)
{
rtn = new String(filename.getBytes("UTF-8"),"ISO8859-1");
}
return rtn;
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
分享到:
相关推荐
文件下载,二进制流转换成文件 解决中文名乱码的问题
Java实现文件下载并解决中文文件名乱码
java导出excel文件并且下载到客户端(包括解决中文乱码)
文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf
// 获取文件的名字 if (Request.UserAgent.Contains("MSIE") || Request.UserAgent.Contains("msie")) { // 如果客户端使用 Microsoft Internet Explorer,则需要编码 fileName = ToHexString(fileName); // ...
例子里写了 文件上传 预览 下载方法, 以及预览 下载时中文名文件乱码问题的处理方法 希望对大家有用处
java压缩文件成zip实现无乱码 内置类与jar包
解压文件时出现中文乱码
解决不同浏览器下载时中文名乱码问题,针对,不同的浏览器,采用不同的编码
在日本经常使用zip或者lha格式的压缩包,在中文系统下解压时,如果压缩包里的文件是日语名,虽然能正常解压,但是解出的文件会变成乱码。这实际上是日语系统使用Shift-JIS编码,在中文系统下解压时按照GB编码显示...
jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。
解决java压缩zip文件时的中文乱码问题 实现:java压缩文件成zip实现无乱码。 包括:写好的工具类与jar包。 使用方法:导入ant.jar包,调用CompressExcelOperate中的方法,即可实现压缩文件,并保证没有中文乱码...
最近发现乱码问题很烦,找了许多资料,自己总结了一些东西,主要是web页面的乱码,请大家指正
1.解决adb在push 或者pull过程中因文件带有中文,出现中文乱码,文件失效的问题 2.重写adb.exe的源码,解决编码问题(Windows下为GBK,Android则为UTF-8)
activiti部署中文乱码解决,亲测有效, 1.activiti-webapp-explorer2\src\main\webapp\editor-app\i18n下en.json 2.activiti-webapp-explorer2\src\main\resources下 activiti-custom-context.xml 3.activiti-webapp-...
完美解决使用Serv-U时,客户端的韩文、日文、中文的文件(夹)名的显示?乱码
感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* 修改源码后重新导出的jar包 *我写的一段小程序,实现的主要功能是同步sftp上的文件夹(sftp->本地) ...
\redhat9.0 共享文件 中文名乱码\redhat9.0 共享文件 中文名乱码
目录乱码-u盘文件目录乱码数据恢复
数据导出EXCEL 解决中文名乱码 同时赠由二进制转换成文件(解决中文名乱码)