在C#中,HttpUtility.UrlEncode("www+mzwu+com")编码结果为www%2bmzwu%2bcom,因为一些服务器对大小写敏感,要求结果改成www%2Bmzwu%2Bcom,注意,不是WWW%2BMZWU%2BCOM。
一开始看到这需求,个人注意力就转移到怎么将www%2bmzwu%2bcom转为www%2Bmzwu%2Bcom,正则等方法立刻浮现出来,最后发现,一开始思路就错了,舍本逐末,用HttpUtility.UrlEncode就能够搞定:
服务器
public string UrlEncode(string str) { StringBuilder builder = new StringBuilder(); foreach (char c in str) { if (HttpUtility.UrlEncode(c.ToString()).Length > 1) { builder.Append(HttpUtility.UrlEncode(c.ToString()).ToUpper()); } else { builder.Append(c); } } return builder.ToString(); }