当下载文件时,会出现文件名乱码(文件名中有中文)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当下载文件时,会出现文件名乱码(文件名中有中文)相关的知识,希望对你有一定的参考价值。
在ie下是正常显示,另外我已经在meta标签加上了utf-8并且设置了Response.ContentEncoding = System.Text.Encoding.UTF8; 我是用.NET写的程序,求解决
这种情况,多数是因为参数解析编码异常,只需要在取得文件时进行URL编码转码即可;
如:String str = new String(str.getByte("iso8859-1"),"UTF-8");
完整代码如图片:
or
参考技术A 您好!很高兴为您答疑。您的问题主要是没有指定URL中数据编码集而导致的错误,请使用System.Web.HttpUtility.UrlEncode(name)方法修订下试一试。另外,请不要反复快速重复地问同一个问题啦。
如果对我们的回答存在任何疑问,欢迎继续问询。追问
你好,我试着改了一下,还是不好用, 我现在代码流程是:在js中把正确的中文文件名放在下载页面的url后边传递过去,到下载页面的cs文件里边就乱码了。全是百分号那种乱码
追答我晕,含有百分号那个不是乱码呀...
请参考阅读下:url 编码(percentcode 百分号编码)。
在IE浏览器 使用PHPExcel导出文件时时 文件名中文乱码
1.当我们使用IE内核的浏览器下在PHPExcel报表时(谷歌、火狐浏览器正常, IE浏览器,360浏览器的兼容模式报错),会出现如下错误:
2.解决办法:
在下载文件时,对当前的浏览器进行判断,
如果是IE内核的浏览器的话,进行文件名的转码,
若不是IE内核的浏览器,则不用。
关键代码如下:
$userBrowser = $_SERVER[\'HTTP_USER_AGENT\']; if ( preg_match( \'/MSIE/i\', $userBrowser ) ) { $filename = urlencode($filename); } $filename = iconv(\'UTF-8\', \'GBK//IGNORE\', $filename);
END
以上是关于当下载文件时,会出现文件名乱码(文件名中有中文)的主要内容,如果未能解决你的问题,请参考以下文章