隐藏

在C#中对Url解码编码的方法

发布:2023/1/5 17:04:11作者:管理员 来源:本站 浏览次数:583

   /// <summary>

           /// 对Url进行编码

           /// </summary>

           /// <param name="url">url</param>

           /// <param name="isUpper">编码字符是否转成大写,范例,"http://"转成"http%3A%2F%2F"</param>

           public static string UrlEncode(string url, bool isUpper = false)

           {

               return UrlEncode(url, Encoding.UTF8, isUpper);

           }

    

           /// <summary>

           /// 对Url进行编码

           /// </summary>

           /// <param name="url">url</param>

           /// <param name="encoding">字符编码</param>

           /// <param name="isUpper">编码字符是否转成大写,范例,"http://"转成"http%3A%2F%2F"</param>

           public static string UrlEncode(string url, Encoding encoding, bool isUpper = false)

           {

               var result = HttpUtility.UrlEncode(url, encoding);

               if (!isUpper)

                   return result;

               return GetUpperEncode(result);

           }

    

           /// <summary>

           /// 获取大写编码字符串

           /// </summary>

           private static string GetUpperEncode(string encode)

           {

               var result = new StringBuilder();

               int index = int.MinValue;

               ; i < encode.Length; i++)

               {

                   string character = encode[i].ToString();

                   if (character == "%")

                       index = i;

                    || i - index == )

                       character = character.ToUpper();

                   result.Append(character);

               }

               return result.ToString();

           }


     /// <summary>

           /// 对Url进行解码,对于javascript的encodeURIComponent函数编码参数,应使用utf-8字符编码来解码

           /// </summary>

           /// <param name="url">url</param>

           public static string UrlDecode(string url)

           {

               return HttpUtility.UrlDecode(url);

           }

    

           /// <summary>

           /// 对Url进行解码,对于javascript的encodeURIComponent函数编码参数,应使用utf-8字符编码来解码

           /// </summary>

           /// <param name="url">url</param>

           /// <param name="encoding">字符编码,对于javascript的encodeURIComponent函数编码参数,应使用utf-8字符编码来解码</param>

           public static string UrlDecode(string url, Encoding encoding)

           {

               return HttpUtility.UrlDecode(url, encoding);

           }