js中encodeURIComponent与C#中HttpUtility.UrlEncode
类别:编程学习 浏览量:1262
时间:2016-10-31 js中encodeURIComponent与C#中HttpUtility.UrlEncode
js中encodeURIComponent与C#中HttpUtility.UrlEncode1、由于JS中通过encodeURIComponent编码时,将中文或者"="、空格等特殊字符转换为大写,但是C#中HttpUtility.UrlEncode编码时,则会将这些字符转换为小写。例如 .NET中方法HttpUtility.UrlEncode会将‘=’编码成‘%3d’,而不是%3D。
2、HttpUtility.UrlEncode会把“空格”编码为“+”,实际上应该编码为“%20”,我们需要手动将“+”替换为“%20”。
3、鉴于以上两点,我们需要利用HttpUtility.UrlEncode,重新封装一个C#编码方法,与JS中encodeURIComponent编码对应起来。
/// <summary>
/// 小写转大写,特殊字符特换
/// </summary>
/// <param name="strSrc">原字符串</param>
/// <param name="encoding">编码方式</param>
/// <param name="bToUpper">是否转大写</param>
/// <returns></returns>
private string UrlEncode(string strSrc, System.Text.Encoding encoding, bool bToUpper)
{
System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
for (int i = 0; i < strSrc.Length; i++)
{
string t = strSrc[i].ToString();
string k = HttpUtility.UrlEncode(t, encoding);
if (t == k)
{
stringBuilder.Append(t);
}
else
{
if (bToUpper)
stringBuilder.Append(k.ToUpper());
else
stringBuilder.Append(k);
}
}
if (bToUpper)
return stringBuilder.ToString().Replace("+", "%20");
else
return stringBuilder.ToString();
}
您可能感兴趣
- js中encodeURIComponent与C#中HttpUtility.UrlEncode
- Server对象的HtmlEncode和UrlEncode
- Server.UrlEncode与HttpUtility.UrlEncode的区别
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
- TVB新剧《黯夜守护者》将播,陈展鹏陈炜首次合作探讨人性(TVB新剧黯夜守护者将播)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
热门推荐
- tomcat正常启动404(Tomcat正常访问localhost报404问题解决)
- dedecms安全设置(织梦系统DedeCMS设定栏目及文档权限登录后跳转到登陆前的页面的实现方法)
- asp.net 文件操作
- javaweb购物车案例(js实现模拟购物商城案例)
- 阿里云轻量级服务器怎么安装宝塔(阿里云服务器安装宝塔面板和配置安全组图文教程)
- mybatis 一对多条件查询(mybatis collection 多条件查询的实现方法)
- onkeyup,onkeydown和onkeypress
- docker指定基础镜像命令(Docker重命名镜像名称和TAG操作)
- php换行乱码(php输出文字乱码的解决方法)
- apache虚拟目录配置(Apache 添加虚拟目录注意事项)