Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript unescape()函数无法正常工作_Javascript - Fatal编程技术网

Javascript unescape()函数无法正常工作

Javascript unescape()函数无法正常工作,javascript,Javascript,在一个站点中,有以下代码: document.write(unescape('%41%54%50%20%2f%20%20%57%54%41%20%4d%6f%73%63%6f%77')); 这就产生了 ATP / WTA Moscow (Shvedova - Pavlyuchenkova) 但如果运行该代码,我只会得到莫斯科ATP/WTA 知道为什么会这样吗 编辑://这是网站 检查这场比赛 ATP/WTA莫斯科(马卡罗娃-西布尔科娃)这根弦不可能产生另一条线。每个%XX代表一个字母。u

在一个站点中,有以下代码:

document.write(unescape('%41%54%50%20%2f%20%20%57%54%41%20%4d%6f%73%63%6f%77'));
这就产生了

ATP /  WTA Moscow (Shvedova - Pavlyuchenkova)
但如果运行该代码,我只会得到莫斯科ATP/WTA

知道为什么会这样吗

编辑://这是网站

检查这场比赛


ATP/WTA莫斯科(马卡罗娃-西布尔科娃)

这根弦不可能产生另一条线。每个%XX代表一个字母。unescape无法神奇地组成不在该字符串中的字符

与编辑。查看页面源代码,您将看到()中的文本不在unescape调用中

<script language='Javascript'>document.write(unescape('%41%54%50%20%2f%20%20%57%54%41%20%4d%6f%73%63%6f%77'));</script> (Kuznetsov - Berlocq)</a></td>
document.write(unescape(“%41%54%50%20%2f%20%20%57%54%41%20%4d%6f%73%63%6f%77”);(库兹涅佐夫-贝洛克)
(Shvedova-Pavlyuchenkova)

正在该代码之后添加

%41%54%50%20%2f%20%20%57%54%41%20%4d%6f%73%63%6f%77

仅代表“ATP/WTA莫斯科”

转义字符串中的每3个字符表示1个可读字符

%=转义和[0-9a-f]=字符的十六进制表示形式

%20=字符32=“”[空格]


%41=character 65=“A”

您提供的字符串中有18个编码字符

ATP/WTA莫斯科
长度为18个字符

无论生成什么
(Shvedova-Pavlyuchenkova)
,都不是您提供的代码

这就是说,
unescape
对于非ASCII字符是断开的,因此也是断开的

这里是网站


括号中的文本作为常规HTML显示在script元素之后。

该链接证明了我所说的,只是在上面添加了一个示例。@fufu-正如我所说,HTML的这一部分不是由脚本生成的。它只是出现在HTML中。
str = Array.prototype.map.call('ATP /  WTA Moscow (Shvedova - Pavlyuchenkova)', function(x){return '%'+x.charCodeAt(0).toString(16);}).join('');

str === '%41%54%50%20%2f%20%20%57%54%41%20%4d%6f%73%63%6f%77%20%28%53%68%76%65%64%6f%76%61%20%2d%20%50%61%76%6c%79%75%63%68%65%6e%6b%6f%76%61%29';

str !== '%41%54%50%20%2f%20%20%57%54%41%20%4d%6f%73%63%6f%77';