【发布时间】:2015-01-05 19:01:01
【问题描述】:
我有一个字符串,类似于
"Bob\u0027s Burgers"
decodeURI 似乎并没有将 \u0027 变成一个撇号,就像它应该做的那样。就这一点而言,它只是不理会它。 encodeURI 似乎对它做了各种各样的事情,但 decodeURI 似乎并没有做到这一点。我在这里错过了什么吗?或者就像他们用不太雄辩的英语所说的那样,“做什么?”
编辑:返回字符串的代码:
courseNames 保存需要的值
$.ajax({
async: false,
url: "/urlforaction",
type: 'POST',
data: {eventID: model.EventID},
complete: function (data) {
courseNames = data["responseText"].substring(1).substring(0, data["responseText"].length-2).split(',');
//courseNames = courseNames.split(',');
//courseNames = courseNames.replace('"', '');
for (i = 0; i < courseNames.length; i++) {
courseNameHTMLStream += courseNames[i] + '<br/>';
}
}
});
双重编辑:responseText 包含这样的字符串:
"类别标题,Bob/u0027s Burger 1,Bob/u0027s Burger 2"
【问题讨论】:
-
这不是应该为 URI 编码特殊字符的方式。检查
encodeURI("Bob's Burgers")返回的内容。 -
是的,除其他外,它会将 %20 中的空格用于 url。
-
实际上,我错了..
unescape已弃用.. 抱歉。改用decodeURIComponent -
还是不行。是否已弃用不会造成太大问题。
-
您使用的是哪个浏览器?我在 Chrome、ff、safari、opera 上对其进行了测试——(虽然没有 IE)并且似乎对我有用。
标签: javascript json decode encode