用&符号替换字符串中的特殊字符

Replacing special characther in string with ampersand

我有一个 URL 基本上是这样的:

https://example.com/us/cgi-bin/webscr?cmd=_express-checkout\u0026token=EC-2BF46053LU471230V

URL 是从如下语句生成的:

if ((int)response.StatusCode == 200 || (int)response.StatusCode == 201)
  {
      var res = await content.ReadAsStringAsync();
      var url = HttpUtility.HtmlDecode(JsonConvert.DeserializeObject<PayPalBlueReference>(res).paypalTransaction.paypalUrl);

      return Json(Regex.Unescape(url), JsonRequestBehavior.AllowGet);
  }

出于某种原因,我的 URL 包含:

\u0026

即使使用

我也无法摆脱的标志
Regex.Unescape()

方法...我什至尝试过使用

Replace("\u0026","&") 

但这也不管用...

URL 的格式应如下所示:

https://example.com/us/cgi-bin/webscr?cmd=_express-checkout&token=EC-2BF46053LU471230V

有人可以帮我吗?

编辑:从服务器返回的 JSON 如下所示:

"https://example.com/us/cgi-bin/webscr?cmd=_express-checkout\u0026token=EC-2BF46053LU471230V"

Edit2:这是使用rokkerboci的方法:

   if ((int)response.StatusCode == 200 || (int)response.StatusCode == 201)
        {
            var res = await content.ReadAsStringAsync();
            var url = HttpUtility.HtmlDecode(JsonConvert.DeserializeObject<PayPalBlueReference>(res).paypalTransaction.paypalUrl);

            return Json(url.Replace("\u0026", "&"), JsonRequestBehavior.AllowGet);
        }

响应仍然包含\u0026

您可以使用 System.Web 命名空间:

string encoded = "https://example.com/us/cgi-bin/webscr?cmd=_express-checkout\u0026token=EC-2BF46053LU471230V";

var unencoded = HttpUtility.HtmlDecode(encoded);

Console.WriteLine(unencoded);