C# 對字符串進行UrlEncode/UrlDecode


//對字符進行UrlEncode編碼
string text= System.Web.HttpUtility.UrlEncode("heart", System.Text.Encoding.UTF8);    
//對字符進行UrlDecode解碼
string data = System.Web.HttpUtility.UrlDecode(text, System.Text.Encoding.UTF8); 

在c#中,HttpUtility.UrlEncode("www+mzwu+com")編碼結果為www%2bmzwu%2bcom,在和Java開發的平台做對接的時候,對方用用url編碼后再對其進行MD5加密,url編碼之后的字符串為大(www%2Bmzwu%2Bcom)寫這樣加密出來的字符串就.net平台的不匹配,

以下供上方法就是解決HttpUtility.UrlEncode編碼由小寫轉化為大寫字母

    /// <summary>
    /// 對字符進行UrlEncode編碼
    /// string轉Encoding格式
    /// </summary>
    /// <param name="text"></param>
    /// <param name="encod">編碼格式</param>
    /// <param name="cap">是否輸出大寫字母</param>
    /// <returns></returns>
    public static string UrlEncode(string text, Encoding encod, bool cap = true)
    {
      if(cap)
      {
        StringBuilder builder = new StringBuilder();
        foreach (char c in text)
        {
          if (System.Web.HttpUtility.UrlEncode(c.ToString(), encod).Length > 1)
          {
            builder.Append(System.Web.HttpUtility.UrlEncode(c.ToString(), encod).ToUpper());
          }
          else
          {
            builder.Append(c);
          }
        }
        return builder.ToString();
      }
      else
      {
        string encodString = System.Web.HttpUtility.UrlEncode(text, encod);
        return encodString;
      }
    }

    /// <summary>
    /// 對字符進行UrlDecode解碼
    /// Encoding轉string格式
    /// </summary>
    /// <param name="encodString"></param>
    /// <param name="encod">編碼格式</param>
    /// <returns></returns>
    public static string UrlDecode(string encodString, Encoding encod)
    {
      string text = System.Web.HttpUtility.UrlDecode(encodString, encod);
      return text;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM