decodeURI 似乎不起作用?

decodeURI doesn't seem to be working?

我有一个字符串,类似于

"Bob\u0027s Burgers"

decodeURI 似乎没有将 \u0027 变成撇号,就像它应该的那样。就这一点而言,它只是让它独自一人。 encodeURI 似乎对它做了各种各样的事情,但 decodeURI 似乎并没有做到这一点。我在这里错过了什么吗?或者正如他们用 less eloquent 英语所说的那样,"what do?"

编辑:返回字符串的代码: 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 包含如下字符串:

"Category Title,Bob/u0027s Burger 1,Bob/u0027s Burger 2"

只需通过 JSON.parse 即可解决问题,

var foo = '"Category Title,Bob\u0027s Burger 1,Bob\u0027s Burger 2"';

console.log(foo);
// outputs "Category Title,Bob\u0027s Burger 1,Bob\u0027s Burger 2"
console.log(JSON.parse(foo));
// outputs Category Title,Bob's Burger 1,Bob's Burger 2

http://jsfiddle.net/tj38pehv/1/

从那以后,您可以继续以逗号分隔它。


来自评论:

The c# is reutrning return Json(string.Join(",", <a complicated EF join statement>, JsonRequestBehavior.AllowGet);

嗯,你为什么首先加入这些价值观?如果 <a complicated EF join statement> 产生类似数组的结构,那么只需将 that 编码为 JSON,而不是制作一个逗号分隔的字符串,应该会给你一个数组 中的单个值 JavaScript 直接……