解码URI似乎不起作用

decodeURI doesn't seem to be working?

本文关键字:不起作用 URI 解码      更新时间:2023-09-26

我有一个字符串,类似

"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/>';
            }
        }
    });

双重编辑:响应文本包含如下字符串:

"类别标题,鲍勃/u0027s 汉堡 1,鲍勃/u0027s 汉堡 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/

从那里开始,您可以继续在逗号处拆分它。


来自评论:

c# 正在重新return Json(string.Join(",", <a complicated EF join statement>, JsonRequestBehavior.AllowGet);

那么,你为什么要首先加入这些价值观呢?如果<a complicated EF join statement>产生类似数组的结构,那么只需将其编码为 JSON,而不是制作逗号分隔的字符串,应该立即在您的 JavaScript 中为您提供一个单个值数组......