2
[Test]
public void Temp()
{
    NameValueCollection nvc = System.Web.HttpUtility.ParseQueryString(string.Empty);

    nvc.Add("Name", "Mickey Mouse");

    Assert.AreEqual("Name=Mickey Mouse", nvc.ToString());
}

在上面的简单测试中,虽然我希望(并且希望)结果是“Name=Mickey Mouse”,但我得到的是“Name=Mickey+Mouse”——空格已被替换为 +。

如何保留原始格式?

我还注意到,在另一个测试中,“:”被“%3a”取代。

编辑

一些进一步的信息来解决评论:

我遇到的问题是我正在尝试根据问题中的测试用查询字符串构建一个 url 字符串。我知道,当我通过 Postman 发布数据时,例如查询字符串中的空格,该帖子已由 API 成功处理,并且我一直在尝试获取正在测试的查询字符串生成代码。

4

1 回答 1

3

您可以尝试使用HttpUtility.UrlDecode解码字符串。

将已编码用于在 URL 中传输的字符串转换为解码字符串。

System.Web.HttpUtility.UrlDecode(nvc.ToString())

c# 在线

结果

Name=Mickey Mouse
于 2018-08-28T22:40:55.130 回答