当前位置:  开发笔记 > 编程语言 > 正文

如何替换URL中的特殊字符?

如何解决《如何替换URL中的特殊字符?》经验,为你挑选了4个好方法。

这可能很简单,但我自己找不到答案:(

基本上,我想要的是,给定这个字符串:

" http://www.google.com/search?hl=en&q=c# objects"

我想要这个输出:

http://www.google.com/search?hl=en&q=c%23+objects

我确信在框架中埋藏了一些辅助类,它可以解决这个问题,但是我找不到它.

编辑:我应该补充一点,这是一个Winforms应用程序.



1> Wilfred Knie..:

HttpServerUtility.UrlEncode(串)

应该解决任何麻烦的人物

要使用它,您需要添加对System.Web的引用(Project Explorer>引用>添加引用> System.Web)

完成后,您可以使用它来编码要添加到查询字符串的任何项目:

System.Web.HttpUtility.UrlEncode("c# objects");



2> Shiv Kumar..:

如果你不想依赖System.Web这里是我在C#OAuth库中的"UrlEncode"的实现(需要正确的实现 - 即空格应使用百分比编码而不是"+"用于空格等.)

private readonly static string reservedCharacters = "!*'();:@&=+$,/?%#[]";

public static string UrlEncode(string value)
{
    if (String.IsNullOrEmpty(value))
        return String.Empty;

    var sb = new StringBuilder();

    foreach (char @char in value)
    {
        if (reservedCharacters.IndexOf(@char) == -1)
            sb.Append(@char);
        else
            sb.AppendFormat("%{0:X2}", (int)@char);
    }
    return sb.ToString();
}

供http://en.wikipedia.org/wiki/Percent-encoding参考



3> dthrasher..:

@Wilfred Knievel有接受的答案,但Uri.EscapeUriString()如果你想避免对System.Web命名空间的依赖,你也可以使用.



4> Amy..:

查看Server.UrlEncode

http://msdn.microsoft.com/en-us/library/ms525738.aspx

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有