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();
}
您可能感兴趣
热门推荐
- mysql事件教程(关于MySQL报警的一次分析处理详解)
- 三种css选择符(浅谈css之属性及剩余的选择符)
- nginx网站集群(Nginx实现高可用集群构建Keepalived+Haproxy+Nginx)
- tomcat原理详解(解析Tomcat架构原理到架构设计)
- springboot与docker(详解SpringBoot项目docker环境运行时无限重启问题)
- docker常用命令详解(docker常用命令总结推荐)
- php 常见的三种缓存(PHP进阶学习之垃圾回收机制详解)
- 云服务器cvm什么意思(什么是云服务器cvm?怎么与普通物理服务器进行)
- linux系统登录mysql数据库(Linux手动部署远程的mysql数据库的方法详解)
- windows10怎么设置iis框架(Windows10系统如何安装IIS服务器)