精华内容
下载资源
问答
  • 如果不想在url中看到有明文,比如http://localhost:8080/template_1/login.action?user=张三 可以使用js的encodeURI的URLDecoder.decode一起使用一起来把url加密下 (1)JS在页面上把数据var val = encodeURI...
  • 不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ‘ encodeURIComponent() 方法: 把 URI字符...
  • NULL 博文链接:https://forhope.iteye.com/blog/1771461
  • 在进行SaaS前端开发的时候,大家经常会用到两个JavaScriptNative函数:encodeURI 和 encodeURIComponent。这篇文章详细解释这两个函数的用途并比较它们的不同之处
  • NULL 博文链接:https://liuzidong.iteye.com/blog/829204
  • 主要介绍了escape()、encodeURI()、encodeURIComponent()的区别,需要的朋友可以参考下
  • JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。接下来通过本文给大家介绍三者之家的区别,感兴趣的朋友...
  • URL传中文参数导致乱码的解决方案之encodeURI
  • encodeURI和encodeURIComponet函数都是javascript中用来对URI进行编码,将相关参数转换成UTF-8编码格式的数据。URI在进行定位跳转时,参数里面的中文、日文等非ASCII编码都会进行编码转换。 这两个函数功能上面比较...
  • 使用JQUERY中所提供的方法来做操作encodeURIfunction verify() {//解决中文乱麻问题的方法1,页面端发出的数据作一次encodeURI,服务器段使用进行转移成UTF-8;//解决中文乱麻问题的方法2,页面端发出的数据作两次...

    在AJAX浏览器来进行发送数据时,一般它所默认的都是UTF-8的编码.

    使用JQUERY中所提供的方法来做操作

    encodeURI

    function verify() {

    //解决中文乱麻问题的方法1,页面端发出的数据作一次encodeURI,

    服务器段使用进行转移成UTF-8;

    //解决中文乱麻问题的方法2,页面端发出的数据作两次encodeURI,

    这个做的好处在于,不管浏览器用户在页面来设置编码,服务器所采用的编码来做一次URLencode转换成UTF-8.

    var url = "AJAXServer?name=" + encodeURI(encodeURI($("#userName").val()));

    url = convertURL(url);

    $.get(url,null,function(data){

    $("#result").html(data);

    });

    }

    说明:1 .encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.

    2. UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号.

    这里要做两次encodeURI的原因以及说明::

    具体说明其中具体的原理分析如下,假设页面端输入的中文是一个“中”,按照下面步骤进行解码

    1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[%E4,%B8,%AD]

    2.第二次encodeURI,把数组最后变成[%25E4,%25B8,%25AD]然后就把处理后的数据[%25E4,%25B8,%25AD]发往服务器端,

    当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数

    应用服务器最初获得的就是发送来的[%25E4,%25B8,%25AD],应用服务器会对这个数据进行URLdecode操作,URldecode操作和encodeURL操作是相反的操作,处理结果就是[%E4,%B8,%AD],并把这个值返回给getParameter方法

    然后再在服务器端中调用相应的URL转码方法或者是函数  就可以把数据还原成最初页面发送过来的中文“中”了。---------------------------------------------------------------------------------

    JS、C#编码解码

    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才不会被#等特殊字符截断。

    例如:

    解码使用decodeURIComponent()

    C#:

    [HttpContext.Current.]Server.UrlDecode

    [HttpContext.Current.]Server.UrlEncode

    ------------------------------------------------------------------------------------------------------------------

    URL编码与两次encodeURI

    当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致乱码。

    encodeURI函数采用UTF-8对URL进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会出现乱码,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交中文查询参数时会产生乱码;针对这种情况,可以连续使用两次encodeURI在客户端(主要指浏览器)对非英文字符进行编码,然后在服务端使用java.net.URLDecoder(String."UTF-8")解码,即可得到正确的中文。

    如果只进行一次encodeURI,得到的是UTF-8形式的URL,服务器端通过request.getParameter()解码查询参数(通常是iso-8859-1)就会得到乱码。

    如果进行两次encodeURI,第一次编码得到的是UTF-8形式的URL,第二次编码得到的依然是UTF-8形式的URL,但是在效果上相当于首先进行了一次UTF-8编码(此时已经全部转换为ASCII字符),再进行了一次iso-8859-1编码,因为对英文字符来说UTF-8编码和ISO-8859-1编码的效果相同。在服务器端,首先通过request.getParameter()自动进行第一次解码(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,对结果无影响)得到ascii字符,然后再使用UTF-8进行第二次解码,通常使用java.net.URLDecoder("","UTF-8")方法。

    两次编码两次解码的过程为:

    UTF-8编码->UTF-8(iso-8859-1)编码->iso-8859-1解码->UTF-8解码,编码和解码的过程是对称的,所以不会出现乱码。

    encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.

    . UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号.

    假设页面端输入的中文是一个“中”,按照下面步骤进行解码

    1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[�,�,�]  此时已经没有了多字节字符,全部是单字节字符。

    2、第二次encodeURI,进行编码,会把%看成一个转义字符,并不编码%以后字符,会把%编码成%.把数组最后变成[�,�,�]然后就把处理后的数据[�,�,�]发往服务器端,

    当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数

    应用服务器最初获得的就是发送来的[�,�,�],应用服务器会对这个数据进行URLdecode操作,应用服务器进行解码的这一次,不管是按照UTF-8,还是GBK,还是ISO-8859,,都能得到[�,�,�],因为都会把%解析成%.并把这个值返回给getParameter方法

    3、再用UTF-8解码一次,就得到"中"了。

    想想看,如果不编码两次,当服务器自动解码的时候,假如是按照ISO-8859去解码UTF-8编码的东西,就是会出现乱码。document.authorityForm.action = basePath3+"User_viewUser.do?id="+id+"&roleName="+encodeURI(encodeURI(roleName))+"&roleType="+roleType;document.authorityForm.action = basePath3+"User_viewUser.do?id="+id+"&roleName="+encodeURI(encodeURI(roleName))+"&roleType="+roleType;

    JAVA后台:roleName = java.net.URLDecoder.decode(getRequest().getParameter("roleName"),"UTF-8");

    roleName = java.net.URLDecoder.decode(getRequest().getParameter("roleName"),"UTF-8");

    展开全文
  • javaScript encodeURI中文乱码
  • encodeURI

    2017-10-25 17:18:00
    js请求连接最好加上encodeURI,否则ie容易出现乱码 转载于:https://www.cnblogs.com/xiaolbk/p/7730007.html

    js请求连接最好加上encodeURI,否则ie容易出现乱码

    转载于:https://www.cnblogs.com/xiaolbk/p/7730007.html

    展开全文
  • 一、前言 讲这3个方法区别的文章太多了,但是大部分写的都很绕。本文试图从实践角度去讲这3个方法。 二、escape和它们不是同一类 简单来说,escape是对字符串(string)进行...三、最常用的encodeURI和encodeURIComponent
  • 在APP开发过程中,免不了要进行ios的数据处理,在ios传递数据的过程中,会出现JSON数据获取不到的情况,这时候就轮到encodeURI 和 decodeURI出马了。 1、encodeURI,decodeURI encodeURI:将字符串作为 URI 进行编码 ...
  • [Java教程]encodeURI 和encodeURIComponent0 2015-12-03 19:00:31转自zccst的又一次掉进encodeURIComponent的坑里了问题:ajax.get ( url+'?k1'=v1+'&k2'=v2+'&k3'=v3, ... );由于URL只进行了encodeURI编码...

    [Java教程]encodeURI 和encodeURIComponent

    0 2015-12-03 19:00:31

    转自zccst的又一次掉进encodeURIComponent的坑里了

    问题:

    ajax.get ( url+'?k1'=v1+'&k2'=v2+'&k3'=v3, ... );

    由于URL只进行了encodeURI编码,所以想提交的参数有searchWord = a+b时,变成了a b。

    解决办法:

    ajax.post( url, params,....)

    其中params是对象。

    原因:如果参数是对象或数组时,组件库已经帮你进行encodeURIComponent了。 而如果你仅仅是字符串,组件库什么也没做,所以到后端时就把特殊字符给过滤了。

    encodeURI()用法

    该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

    该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

    提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

    例子:document.write(encodeURI("http://www.w3school.com.cn")+ "
    ") document.write(encodeURI("http://www.w3school.com.cn/My first/")) document.write(encodeURI(",/?:@&=+$#")) //批注:只转换域名后面的部分,并且对,/?:@&=+$#不处理。 // http://www.w3school.com.cn // http://www.w3school.com.cn/My%20first/ // ,/?:@&=+$#

    decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。

    encodeURIComponent()用法

    该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

    其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

    提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

    例子:document.write(encodeURIComponent("http://www.w3school.com.cn")) document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/")) document.write(encodeURIComponent(",/?:@&=+$#")) //对比 // http%3A%2F%2Fwww.w3school.com.cn // http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F // %2C%2F%3F%3A%40%26%3D%2B%24%23

    decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

    本文网址:http://www.shaoqun.com/a/164024.html

    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

    0

    展开全文
  • 一、基本概念 encodeURI和decodeURI是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误,所以可以encodeURI把非英文字符转化为英文编码,decodeURI可以用来把字符还原回来。encodeURI方法...
  • 首先,我们都知道这三个东西都是用来编码的先来说encodeURI()和encodeURIComponent(),这两个是在转换url时候用来编码解码用的。 有编码就会有解码,解码就是decodeURI()和decodeURIComponent(),他们的用法很简单,...
  • 把URI字符串采用UTF-8编码格式转化成escape各式的字符串。 encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;...console.log(encodeURI(t), decodeURI(encodeURI(t))) /** ..

    把URI字符串采用UTF-8编码格式转化成escape各式的字符串。


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

     encodeURI()用于整个url编码

     

    const t = ' http://localhost:8080/pro?a=1&b=张三&c=aa'
    console.log(encodeURI(t), decodeURI(encodeURI(t)))
    /**  %20http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=aa  
    http://localhost:8080/pro?a=1&b=张三&c=aa */

     

    展开全文
  • //网上一堆废话 内置不用写一堆文件处理真是蛋疼JSescape()使用转义序列替换某些字符来对字符串进行编码 JavaScript 中国 编码后 JavaScript%u4E2D%u56FDunescape()对使用encodeURI()通过转义某些字符对 URI 进行...
  • encodeURI()和encodeURIComponent()方法

    千次阅读 2021-03-06 01:20:07
    encodeURI()和encodeURIComponent()方法用于编码传递给浏览器的URI(统一资源标识符)。有效的URI不 能包含某些字符,如空格。这两个方法用于编码URI,这样用专门的UTF-8编码替换所有的非有效字符,就可以使浏览器仍...
  • 本文实例讲述了JavaScript使用encodeURI()和decodeURI()获取字符串值的方法。分享给大家供大家参考。具体如下: JavaScript使用encodeURI()和decodeURI()获取字符串值,不能就是地址栏显示的字串,以前经常在网上...
  • 解决url传递中文乱码问题,解决后台接收到的汉字是乱码的
  • encodeURI encodeURIComponent 的区别,和使用场景 一、 ncodeURI encodeURIComponent 之前一直不了解这两个的区别,现在知道了: -encodeURI 是对可以对整个请求地址进行转义 encodeURIComponent 只可用于转义单个...
  • js使用encodeURI和decodeURI转码和解码

    千次阅读 2020-08-04 13:47:11
    直接上代码: 函数出现时间: escape() javascript 1.0 encodeURI() javascript 1.5 encodeURIComponent() javascript 1.5 函数功能介绍: e...
  • Java encodeURI

    千次阅读 2017-07-13 16:30:57
    function beforeRename(treeId, treeNode, newName) { if (newName.length == 0) { alert("节点名称不能为空."); return false; } var param = "id=" + treeNode.id + "&name=" + ... $.post(encodeURI(encodeU
  • url中文参数 url中文参数 其实,主要是讲了encodeURI函数和encodeURIComponent函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,794
精华内容 11,117
关键字:

encodeuri

友情链接: 2-1.zip