在C#中,HttpUtility.UrlEncode("www+mzwu+com")编码结果为www%2bmzwu%2bcom,由于一些服务器对大小写敏感,要求结果改为www%2Amzwu%2Ccom,注意,不是WWW%2AMZWU%2CCOM。
一开始看到这需求,我的注意力就转移到怎么将www%2amzwu%2ccom转为www%2Amzwu%2Ccom,正则等方法马上浮现出来,最后发现,一开始思路就错了,舍本逐末,用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();
}