You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法创建Uri求助:API返回JSON链接处理后出现%22异常

解决Uri中出现%22(双引号编码)的问题

你的问题核心是API返回的链接字符串里带着冗余的双引号,Regex.Unescape并没有帮你移除这些引号,反而把转义的引号转换成了实际的双引号,导致Uri创建时将其编码为%22。这里有个简单直接的解决思路:

  • 第一步:清理冗余双引号
    观察你的链接格式,引号只出现在首尾,用Trim('"')方法精准去除首尾的双引号是最稳妥的方式(比全局替换更安全,避免误删链接中间可能存在的合法引号)。示例代码:

    // 假设oldLink是从JSON解析后得到的字符串,比如值为 "\"/players/samir-handanovic/17974/\""
    string cleanedLink = oldLink.Trim('"');
    

    执行后cleanedLink就会变成干净的/players/samir-handanovic/17974/。

  • 第二步:生成正确的Uri
    用清理后的链接创建Uri,就不会再出现%22的问题了:

    Uri link = new Uri("https://myendpoint.com", cleanedLink);
    

为什么之前的方法会出问题?

Regex.Unescape的作用是处理正则表达式中的转义字符(比如把\\n转换成换行符),它会把你字符串里的\"转成实际的双引号",但并不会帮你移除这些引号。而Uri规范中,双引号属于需要编码的特殊字符,所以创建Uri时会自动把"编码成%22,这就是你看到异常AbsolutePath的原因。

如果你的场景中引号可能出现在链接其他位置(虽然API返回的正常链接不太会这样),可以用Replace("\"", "")全局移除所有双引号,但还是优先推荐Trim('"'),它更贴合你当前的场景。

内容的提问来源于stack exchange,提问作者cojac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:25:55