1.参数信息在url中传递的时候url里面的特殊字符转义的情况,但是在加载的时候可能会无法加载转义后的url信息
转译规则
空格 用%20代替
" 用%22代替
# 用%23代替
% 用%25代替
&用%26代替
( 用%28代替
) 用%29代替
+ 用%2B代替
, 用%2C代替
/ 用%2F代替
: 用%3A代替
; 用%3B代替
< 用%3C代替
= 用%3D代替
> 用%3E代替
? 用%3F代替
@ 用%40代替
\ 用%5C代替
| 用%7C代替
url中特殊字符转义为原始字符函数
function decodeUrl (url) {
const codes = [
{
key: '%20',
value: ' '
},
{
key: '%22',
value: '\'\''
},
{
key: '%23',
value: '#'
},
{
key: '%25',
value: '%'
},
{
key: '%26',
value: '&'
},
{
key: '%28',
value: '('
},
{
key: '%29',
value: ')'
},
{
key: '%2B',
value: '+'
},
{
key: '%2C',
value: ','
},
{
key: '%2F',
value: '/'
},
{
key: '%3A',
value: ':'
},
{
key: '%3B',
value: ';'
},
{
key: '%3C',
value: '<'
},
{
key: '%3D',
value: '='
},
{
key: '%3E',
value: '>'
},
{
key: '%3F',
value: '?'
},
{
key: '%40',
value: '@'
},
{
key: '%5C',
value: '\\'
},
{
key: '%7C',
value: '|'
},
];
for (let item of codes) {
if (url.includes(item.key)) {
const targetValue = url.replace(item.key, item.value);
return this.decodeUrl(targetValue);
}
}
return url;
};