C#NamedValueCollection ToString替换空间

时间:2018-08-28 22:27:41

标签: c# .net

[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已成功处理了该帖子,并且我一直在尝试获取正在测试的查询字符串生成代码。

1 个答案:

答案 0 :(得分:3)

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

  

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

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

c# online

结果

Name=Mickey Mouse