获取Content-Disposition响应头时中文名称乱码,该如何转码?

芝麻谷 发布于 2014/11/20 11:35
阅读 3K+
收藏 0
 

自己开发了一个下载工具基于http协议,可以正常下载,但是在解析文件名时出现中文乱码,关键代码


HttpURLConnection conn = HttpUtil.getHttpConnection(url);  String contentDisposition = conn.getHeaderField("Content-Disposition");
HttpUtil.printResponseInfo(conn);
if(contentDisposition != null && !"".equals(contentDisposition)){
    filename = processorFileName(contentDisposition.split("filename=")[1]);
    filename = new String(filename.getBytes("iso8859-1"), "gbk");
//    filename = new String(new String(filename.getBytes("iso8859-1"), "gbk").getBytes("gbk"), "utf8");
}  

响应头中获取的Content-Disposition=attachment; filename="Ô¹â.mp3",由于并不是所有的请求返回的都是乱码,有时转码得到的反而是乱码。有没有什么方法能获得filename的编码格式?按照这个获取的格式对文件名进行转码。

有兴趣可以看看

项目地址:https://git.oschina.net/houjinxin/fetch.git


加载中
返回顶部
顶部