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();
}
您可能感兴趣
- Server对象的HtmlEncode和UrlEncode
- js中encodeURIComponent与C#中HttpUtility.UrlEncode
- Server.UrlEncode与HttpUtility.UrlEncode的区别
- 全球科技界最有钱大佬TOP 15 你知道几位(全球科技界最有钱大佬TOP)
- 2主力后腰缺阵 泰山队奇兵有望获重用,赛季0出场,迎来中超首秀(泰山队奇兵有望获重用)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
- 《红 雄安》系列广播剧第一集 水上奇兵雁翎队(雄安系列广播剧第一集)
- 小说 小伙穿越成刘备,用现代知识指挥作战,众谋士都看呆了(小伙穿越成刘备)
- 解析葡萄牙6-1瑞士 进攻多点开花,贡萨洛-拉莫斯一战成名(解析葡萄牙6-1瑞士)
热门推荐
- iphone h5调试(H5页面适配iPhoneX就是那么简单)
- MVC中JavaScriptResult
- mysql8.0.15官方最新版本安装教程(MySQL8.0.24版本Release Note的一些改进点)
- docker容器解决隔离的技术(Docker+selenium实现自动化健康报备的方法)
- sql server案例(SQL Server作业报错特殊案例分析)
- docker可用容量查看(docker 查看jvm内存占用方式)
- python爬微信好友(python抓取需要扫微信登陆页面)
- mysql主从同步失败原因(mysql 主从复制如何跳过报错)
- C#中Serializable序列化
- python实现最简单的游戏(20行python代码的入门级小游戏的详解)