js编码之encodeURIComponent使用介绍(asp,php)

因为要新作系统,因此对于JS脚本又重新研究了一下。在对新的URL编码的时候发现,网页编码的格式对于JS的影响很大,在这里书写一点。

{var B=siteUrl+this.actionUrl+(this.type==="all"?"":this.type)+"&SearchWord="+encodeURIComponent(A).replace(/'/g,"%27");$redirect(B)}}

在制作的时候,发现传出去的数据包的编码全部是UTF-8格式的,而在改正网页编码后也同样没有反映,最后在修改了ENCODE成DECODE方式才解决问题。

js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:

2、 进行url跳转时可以整体使用encodeURI

例如:Location.href="/encodeURI"("http://www.jb51.net/s?word=百度&ct=21");

3、 js使用数据时可以使用escape

例如:搜藏中history纪录。

4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

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

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

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

(0)

相关推荐

  • js转义字符介绍

    "<" 转义 :"<" ">" 转义 :">"

  • 从此不再惧怕URI编码 JavaScript及C# URI编码详解

    混乱的URI编码 JavaScript中编码有三种方法:escape.encodeURI.encodeURIComponent C#中编码主要方法:HttpUtility.UrlEncode.Server.UrlEncode.Uri.EscapeUriString.Uri.EscapeDataString JavaScript中的还好,只提供了三个,C#中主要用的就有这么多,还没有列出其他编码(HTML),一多就弄不明白,弄不明白就心生恐惧,心生恐惧就变得苦逼,本文就向大家详细解释在JavaSc

  • js中的eval()函数把含有转义字符的字符串转换成Object对象的方法

    在项目中遇到一个问题:在前端需要把后台返回的json字符串转换成一个js中的json对象,可是从后台返回的字符串中含有转义字符:\", 在网上查到方法如下,可以处理这种情况: var page = eval("("+data+")"); 以上这篇js中的eval()函数把含有转义字符的字符串转换成Object对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • js 转义字符及URI编码详解

    URL中的转义字符 当URL的参数中出现诸如+,空格,/,?,%,#,&,=等特殊字符串符号时,因为上述字符有特殊含义,导致服务器端无法正确解析参数,如何处理?解决办法:将这些字符转化成服务器可以识别的字符. 如果要在URL中传递特殊符号的原本意义,要对他们进行编码.编码的格式为:%加字符的ASCII码(16进制),例如空格的编码值是"%20". URL中特殊符号的用途及普通意义的编码 + URL 中+号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔

  • 转义字符(\)对JavaScript中JSON.parse的影响概述

    按照ECMA262第五版中的解释,JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象.json标准参考<a href="http://json.org/" target="_blank">json.org</a>.(其实将符合json标准的字符串转化为js对象可以用eval,但是eval性能相对差且存在安全隐患(会执行json字符串中

  • javascript asp教程第二课--转义字符

    并非是题外话:我们在第二课中要讲到的"转义字符"看起来与我们的课程并没有关系.事实并非如此.转义字符是在 asp中使用javascript的一个完整部分.而第二课要讲的恰恰就是转义字符.没有转义字符,那么你为了 写出有效率的asp脚本将会遇到许多的困难.抱歉,下面进入正题:以下是第二课的asp脚本.还记不记得在第一课的列子中,我们怎样编写了一个html输出都在同一行的代码.转义字符允许我们增加 换行符号.下面是我们上边例子在客户端html输出页面的代码:换行符:我又在下面重新打了一行a

  • Javascript下的urlencode编码解码方法附decodeURIComponent

    关于在ASP(Server.UrlEncode).PHP(urlencode())函数编码结果,或是经过asp.php等动态语言直接写入COOKIES的中文字符,用JS读取的时候,都会碰到一个编码的问题,那就是最终字符串被urlencode编码了,而又时有需要从JS在客户端去读取这些数据. 而本文,就大概说说如何在js中通过系统自带的函数去解决这个问题. 而相信碰到过此问题的朋友应该都有所了解,目前网络上流行一些js下的自定义函数去解决这个问题,如说vbscript(URLDecode()).j

  • jsp简单自定义标签的forEach遍历及转义字符示例

    接着昨天的,如果<forEach>中的items类型是map或者Collection类型的,怎样使用增强for循环: 首先还是创建一个标签处理器类,定义两个属性,String var; Object items: 因为items要迭代各种集合,所以要使用Object; 然后重写setter方法: 声明一个成员变量,集合类型的, 和上面两个属性是不相同的,这个是用在类里的, 在items的setter方法中,判断items的类型 然后继承他的doTag方法: 复制代码 代码如下: public

  • Javascript 八进制转义字符(8进制)

    摸索过程中,看见这样的字符:"\155",用来代替字符"m".为什么?....完全不知道原因,整个人顿时慌了!可别说自己4年的经验了!"\155"和"m"是全等的,到现在,2011年了我才知道,深感惭愧! 对于字符转义,常见的大概如下: "\u5230" ==> "到" "\t" ==> horizontal tab "\u0009"

  • 快速解决owin返回json字符串多带了双引号"多了重string转义字符串

    解决方法: [HttpGet] public HttpResponseMessage getsystemtime() { cltime time = new cltime(); time.datetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string relsut = JsonConvert.SerializeObject(time); var resp = new HttpResponseMessage { Conten

随机推荐