繁体   English   中英

为什么在我的javascript变量中的空格中添加%20

[英]Why is it adding %20 to the spaces in my javascript variables

function openFile(file, object) {
    var extension = file.substr( (file.lastIndexOf('.') +1) );

    var fileName = file.substr((file.lastIndexOf('/') +1), (file.length - (file.lastIndexOf('/') +1))-4);


    object.append('<img class="theimage" src="" alt="icon"/>');
    object.append('<span class="thefile"></span>');


    switch(extension) {

        case 'ppt':
            object.find('img').attr('src', 'PowerPoint-icon.png');
        break;
        case 'pdf':
            object.find('img').attr('src', 'pdficon_large.gif'); 
        break;
        case 'txt':
            object.find('img').attr('src', 'txt_icon.png'); 
        break;
        default:
            alert('error');
    }

    object.find('span.thefile').text(fileName);

};

此函数本身可以正常运行,但是当我将其添加到学校的cms模板时,它将%20添加到fileName中的所有空格。

您认为他们有自己的职能吗? 目的是什么? 为了安全?

%20是空格的标准URL编码。 无论使用什么功能处理空格,都认为需要对空格进行编码才能在URL中使用。

至于为什么这样做,并不是完全出于安全考虑。 并非所有系统都能很好地处理空间。 在这种情况下这很有帮助,因此,URL编码空格(除其他事项外)被认为是“更安全”的。 有关所有其他信息,请参阅RFC 3986 s2.1s2.4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM