http的Content-Disposition可以用来着指定下载文件的文件名,但是如果文件名中含有中文如果直接用
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
if (conn.getResponseCode() == 200) {
String disposition=conn.getHeaderField("Content-Disposition");
}
打印会发现所有的中文都变成了乱码。
分析了下原因,应该是 HttpURLConnection的getHeaderField默认所有header是用iso-8859-1编码的,但是中文实际是用uft8编码。所以就出现了乱码问题。既然知道原因,解决起来就很简单了。
因为是把多字节的编码转换成了单字节的iso-8859-1,所以并不会造成编码信息的丢失。这样我们用
new String(disposition.getBytes("ISO-8859-1"),"utf8")
就可以解决中文乱码的问题了。ps:这里的中文编码是否为utf8需要根据实际情况来判断。
写下来做个笔记也希望能帮上遇到同样问题的朋友。
分享到:
相关推荐
文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf
( response.setHeader()下载中文文件名乱码问题
教学案例:解决中文输出乱码问题 1.所属课程: Java Web开发技术 2.相关技能点 HttpServletResponse setCharacterEncoding(String charset) setHeader(String name,String value) setContentType(String type) 2.训练...
修改两处源码,解决压缩后中文名乱码问题,经过项目测试,请放心使用
在输出文件地地方使用的代码: string path = request.PhysicalPath;... Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.WriteFile(path); Response.End(); }
jira报表 饼图 中文乱码 fonts中文rpm包有fonts-chinese-3.02-12.el5.noarch.rmp以及fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm,rpm安装后,乱码问题解决,安装命令如下: [root@localhost fonts]# rpm -ivh --...
本文实例讲述了PHP使用strrev翻转中文乱码问题的解决方法。分享给大家供大家参考,具体如下: 在用PHP中的strrve翻转中文时,会出现乱码情况 例如: header(Content-Type: text/html; charset=utf-8); echo strrev...
终极解决apache乱码和日志分割问题,LoadModule encoding_module modules/mod_encoding.so Header add MS-Author-Via "DAV" </IfModule>
Jmeter5.4.3版本最新全量包,已解决上传附件中文名乱码问题
可将此插件下载后加入到扩展程序中,右键即可看到 Set Character Encoding选项,选择“UTF-8”,即可解决查看源码中文乱码的问题【下载文件里有crx插件和已经解压的,如果显示CRX_HEADER_INVALID 请使用开发者模式...
本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法。分享给大家供大家参考。具体如下: 复制代码 代码如下:<?php $ua = $_SERVER[“HTTP_USER_AGENT”]; $filename = “中文 文件名.txt”; $encoded_...
中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。 复制代码 代码如下: <?php $file_name = urlencode($_REQUEST[‘filename’]); ...
0.jar包是已经把修改文件放进去后的结果。可以直接用 1.Utils类中有说明 2/表头乱码问题请参考http://download.csdn.net/detail/hongyuan19/4073652
1、header(‘Content-Encoding: XXXX’); 有可能是编码问题:可以尝试UTF-8,GBK,GB2312,等编码格式 2、有可能是文件编码问题,虽然UTF-8不建议带BOM,但是导出的excle是微软的产品,所以需要把文件格式改成,UTF-8有...
是因为XMLHttp在处理返回的responstText的时候把responstBody按UTF-8编码进行解码的,如果服务器端送出的数据流的确是UTF-8编码,那么中... 您可能感兴趣的文章:php生成二维码时出现中文乱码的解决方法PHP中使用file
在php中,中文乱码非常头疼,很麻烦,所以根据在编程的经验,总结以下方法(以utf_8为例), 1.php中在头部header设置编码方式 header(Content-type:text/html;charset=utf-8); 2.php中用iconv转码 echo iconv(GB...
AJAX的乱码的出现在的原因 由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的... 因而这样可以解决乱码问题 方法二,是都采用UTF-8编码