JS、C#编码解码

最近在项目中用到请求一个地址的时候,会传个JSON数据。刚开开始没什么问题,后来发现有特殊符号就会有问题,找到一些解决方案,在此记录下。

原文:http://www.cnblogs.com/lmfeng/archive/2011/11/08/2240991.html

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,‘,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z

1.

JS: escape :

  • js使用数据时可以使用escape
  • 例如:搜藏中history纪录。
  • 0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

解码使用:unescape

C#:

HttpUtility.UrlEncode   
HttpUtility.UrlDecode

2.

JS: encodeURI :

  • 进行url跳转时可以整体使用encodeURI
  • 例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

解码使用decodeURI();

C#: decodeURIComponent

3.

JS: encodeURIComponent :

  • 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                           
  • 例如:<script language="javascript">document.write(‘<a href="http://passport.baidu.com/?logout&aid=7& u=‘+encodeURIComponent("http://cang.baidu.com/bruce42")+‘">退出</a& gt;‘);</script>

解码使用decodeURIComponent()

C#:

[HttpContext.Current.]Server.UrlDecode

[HttpContext.Current.]Server.UrlEncode

时间: 2024-08-29 06:15:02

JS、C#编码解码的相关文章

js实现编码,解码

<p><script type="text/javascript">// <![CDATA[var decToHex = function(str) {    var res=[];    for(var i=0;i < str.length;i++)        res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);    return "\\u"+r

C# 对JS编码/解码进行转换

public static class Extension { #region [编码/解码统一转换] /// <summary> /// /// </summary> /// <param name="str"></param> /// <param name="isEscape">True为Encode;False为Decode</param> /// <returns><

java、js的编码、解码

如果在地址栏挂载参数,特别是包含中文,往往要进行编码,取值时再解码,以下是java和js中编码.解码的各自方法. java: @Test public void test3() throws UnsupportedEncodingException{ System.out.println(URLEncoder.encode("我", "UTF-8"));//%E6%88%91 System.out.println(URLDecoder.decode("%E

js前端、Java后台编码解码

由于信息在网络上传输的安全性以及中文传输问题,我们需要解决js前端对信息进行编码解码工作,同样需要在Java后天对js编码解码的结果进行反操作-解码编码. JS前端编码  ---> JAVA解码,如下: PS:当传递的某个参数值为一个链接(如:http://baidu.com?name=小许)时,需要对这个url作为一个参数进行编码,这时需要用到encodeURIComponent 这个函数 encodeURIComponent(url),这种编码情况下在后台的解码方式和encodeURI对应的

JS编码解码详解

今天在整理 js编码解码方法时,在网上搜资料,发现一篇文章讲的不错,讲解的非常简单明了,于是乎就想转载过来,却发现无法转载到博客园,最后只能卑鄙的摘抄过来.js编码解码就是将一些对URL和数据库敏感的在使用时容易被过滤掉,或者容易对数据库造成注入威胁的字符串进行编码,在使用时再进行解码,原理很简单用法也很简单,正好下面这篇文章讲解的非常明了利索.原文地址是http://blog.csdn.net/wwwchenbing/article/details/3409183,希望作者不要告我侵权. 1.

【转】关于URL编码/javascript/js url 编码/url的三个js编码函数

来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javascript)编码url的相关问题.(js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值.如:http://www.ilcng.com/index.html?id=http://ilcng

编码解码--url编码解码

url编码解码,又叫百分号编码,是统一资源定位(URL)编码方式.URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理. 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI.encodeURIComponent,PHP有 urlencode.urldecode等.编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16

常用JS加密编码算法

一:UTF8编码函数 function URLEncode(Str){ if(Str==null||Str=="") return ""; var newStr=""; function toCase(sStr){ return sStr.toString(16).toUpperCase(); } for(var i=0,icode,len=Str.length;i<len;i++){ icode=Str.charCodeAt(i); if

关于URL编码/javascript/js url 编码/url的三个js编码函数

关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javascript)编码url的相关问题.(js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值.如:http://www.ilcng.com/index.html?id=http://ilcng.com/xmxy/?id1=1&id2=2)这个时候参数id所获得的值并不是 http:/

javascript中可用的编码解码函数

在项目实践中可能会遇到一些特殊字符的转义问题,那么这个时候就需要js编码解码函数来解决这些情况了: 特殊字符的含义 URL编码  符号 解释 转义 # 用来标志特定的文档位置 %23 % 对特殊字符进行编码 %25 & 分隔不同的变量值对 %26 + 在变量值中表示空格 %2B / 表示目录路径 %2F \ 表示目录路径 %5C = 用来连接键和值 %3D ? 表示查询字符串的开始 %3F 空格 空格 %20 . 句号 %2E : 冒号 %3A javascript中可用的编码解码函数,有如下的