如何在vb.net中对URL中的html特殊字符进行编码和编码

时间:2012-03-01 04:32:41

标签: html vb.net urlencode

只说&,?,/,。

我希望其余部分保持完整,包括中文或日文字符。可以插入那些就好了吗?

语言是vb.net

1 个答案:

答案 0 :(得分:3)

此链接可能对您有所帮助...... http://dhanushkaat.blogspot.in/2012/01/only-encode-url-special-characters-in.html

<小时/> <小时/> 修改:我添加了以下链接的内容:
在参考URL编码特殊字符时,我们可以轻松地使用在System.Web.dll程序集中定义的函数。

虽然这是编码字符串以使其在HTTP上下文中兼容的最直接无忧的方法,但在某些情况下我们不会自动获得该特权(例如非Web应用程序)。

当我从VS 2010开发SQL Server用户定义函数时遇到了这种情况。 这种情况下的特殊问题是,当您在SQL CLR项目中添加程序集引用时,将从数据库服务器中的GAC获取引用。 Microsoft已添加了一组程序集,它们已将这些程序集识别为安全程序集,以便由GAC的T-SQL函数引用,使我们能够使用这些类中定义的功能。但不幸的是System.Web.dll不是其中之一。

那么将是什么工作,我们可以在System.Uri名称空间内找到我们可以用于URL编码的另一个函数,幸运的是它位于System.dll内。

好的,那么如何使用它来编码URL特殊字符!! 简单地使用“正则表达式”的力量。

这是我写的函数。

private static string EncodeUrl(string toEncode)
  {
     const string pattern = "[$&+,/:;=?@]";
     var match = Regex.Match(toEncode, pattern);
     while(match.Success)
     {
        toEncode = toEncode.Replace(match.Value, Uri.EscapeDataString(match.Value));
        match = Regex.Match(toEncode, pattern);
     }
     return toEncode;
  }

该函数重复检查传递的字符串,直到所有特殊字符都替换为各自的编码值。

Regex.Match和字符串替换函数的组合可确保仅替换正则表达式模式中定义的字符。