1. 程式人生 > 實用技巧 >C# 對字串進行UrlEncode/UrlDecode

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; }