我们在web开发中经常用到url中含有中文字符的需要对其进行字符串编码和解码。但是System.Web.HttpUtility.UrlEncode、System.Web.HttpUtility.UrlDecode方法是不会对"+"进行编码和解码的。因此,我们需要对这两个方法进行扩展一下。
数学,圆周率,质数,合数,奇数,偶数,阶乘,约数,倍数,勾股数 域名由www.haomeili.net变为www.mz51.vip
/// <summary>
/// 对字符串进行url编码
/// </summary>
/// <param name="str">待编码的url</param>
/// <param name="code">字符编码</param>
/// <returns>编码后的字符串</returns>
public static string UrlEncode(this string str, Encoding code)
{
if (string.IsNullOrEmpty(str))
return str;
return System.Web.HttpUtility.UrlEncode(str, code).Replace("+", "%2b"); //+号替换成%2b
}
/// <summary>
/// 对字符串进行url解编
/// </summary>
/// <param name="str">待编码的url</param>
/// <param name="code">字符编码</param>
/// <returns>解编后的字符串</returns>
public static string UrlDecode(this string str, Encoding code)
{
if (string.IsNullOrEmpty(str))
return str;
return System.Web.HttpUtility.UrlDecode(str, code).Replace("%2b", "+"); //原来是+好的还原
}