URL编码和解码的一个小问题(JS方法和JAVA方法)

var href = window.location.href;
        var existAffirm = href.indexOf("?")
        if(existAffirm!=-1){
            var subText = href.split("?");
            $("#searchSubmit").val(subText[1]);
            var arr = href.split("&");
            var title = arr[0].split("title=");
            $("#searchInput").val(title[1]);
        }

在执行上一段代码时,若地址栏包含中文字符,则取到的title为url编码之后的数据。

所以在设置searchInput这个输入框的val的时候,需要对title进行URL解码。

由于 ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。

所以最终代码为

var href = window.location.href;
        var existAffirm = href.indexOf("?")
        if(existAffirm!=-1){
            var subText = href.split("?");
            $("#searchSubmit").val(subText[1]);
            var arr = href.split("&");
            var title = arr[0].split("title=");
            $("#searchInput").val(decodeURI(title[1]));
        }

 当然 也可以在后台进行解码

URLDecoder.decode(searchText, "utf-8");

返回值就是解码后的字符串了

原文地址:https://www.cnblogs.com/handsomejunhong/p/8424554.html