System.Web.HttpUtility.UrlEncode/System.Web.HttpUtility.UrlDecode注意事項

我們在web開發中經常用到url中含有中文字符的需要對其進行字符串編碼和解碼。但是System.Web.HttpUtility.UrlEncode、System.Web.HttpUtility.UrlDecode方法是不會對"+"進行編碼和解碼的。因此,我們需要對這兩個方法進行擴展一下。

        /// <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", "+");  //原來是+好的還原 
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章