制作文件下载,中文文件名称的问题

原创
2013/02/28 22:41
阅读数 119

如果文件名称中有中文或者空格,会出现文件名称编码不对的问题。

以NODEJS语言为例子:

var filename = '下载 文件名称.txt';

if(request.headers['user-agent'].toLowerCase().indexOf("msie") > -1){
        filename = encodeURIComponent(filename);
}else{
        filename = '"' + filename + '"';
}

var head = {
    'content-type': 'application/force-download',
    'Content-Disposition': 'attachment; filename=' + filename
};

response.writeHead(200, head);
response.end(stream);

如果不加上

if(request.headers['user-agent'].toLowerCase().indexOf("msie") > -1){
        filename = encodeURIComponent(filename);
}else{
        filename = '"' + filename + '"';
}
那么会出现以下问题:


"下载 文件名称.txt"在IE下载时显示名称为

%E4%B8%8B%E8%BD%BD%20%E6%96%87%E4%BB%B6%E5%90%8D%E7%A7%B0.txt

"下载 文件名称.txt"在非IE浏览器(如Firefox)下载时显示名称为

"下载",空格后面的没了。。。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部