encodeuri

区分escape、encodeURI和encodeURIComponent

為{幸葍}努か 提交于 2020-03-12 21:50:29
一、escape和它们不是同一类 简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。 编码之后的效果是%XX或者%uXXXX这种形式。 其中 ASCII字母、数字、@*/+ ,这几个字符 不会 被编码,其余的都会。 最关键的是,当你需要对URL编码时,请忘记这个方法,这个方法是针对字符串使用的,不适用于URL。 但是如果URL里面带有的参数包含有&符号时,使用escape。 二、最常用的encodeURI和encodeURIComponent 对URL编码是常见的事,所以这两个方法应该是实际中要特别注意的。 它们都是编码URL,唯一区别就是编码的字符范围,其中 encodeURI方法 不会 对下列字符编码 ASCII字母、数字、~!@#$&*()=:/,;?+' encodeURIComponent方法 不会 对下列字符编码 ASCII字母、数字、~!*()' 所以encodeURIComponent比encodeURI编码的范围更大。 实际例子来说,encodeURIComponent会把 http:// 编码成 http%3A%2F%2F 而encodeURI却不会。 三、最重要的,我该什么场合用什么方法 区别上面说的很清楚了,接下来从实际例子来说说把。     1、如果只是编码字符串,不和URL有半毛钱关系

escape、encodeURI和encodeURIComponent的区别

自闭症网瘾萝莉.ら 提交于 2020-03-06 15:05:28
一、escape和它们不是同一类 简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。 编码之后的效果是%XX或者%uXXXX这种形式。 其中 ASCII字母、数字、@*/+ ,这几个字符 不会 被编码,其余的都会。 最关键的是,当你需要对URL编码时,请忘记这个方法,这个方法是针对字符串使用的,不适用于URL。 事实上,这个方法我还没有在实际工作中用到过,所以就不多讲了。 二、最常用的encodeURI和encodeURIComponent 对URL编码是常见的事,所以这两个方法应该是实际中要特别注意的。 它们都是编码URL,唯一区别就是编码的字符范围,其中 encodeURI方法 不会 对下列字符编码 ASCII字母、数字、~!@#$&*()=:/,;?+' encodeURIComponent方法 不会 对下列字符编码 ASCII字母、数字、~!*()' 所以encodeURIComponent比encodeURI编码的范围更大。 实际例子来说,encodeURIComponent会把 http:// 编码成 http%3A%2F%2F 而encodeURI却不会。 三、最重要的,我该什么场合用什么方法 区别上面说的很清楚了,接下来从实际例子来说说把。     1、如果只是编码字符串,不和URL有半毛钱关系

Struts项目中前端页面向后台页面传参中文出现乱码(Get请求)

爱⌒轻易说出口 提交于 2020-03-04 00:51:29
问题描述:Struts项目中前端页面向后台页面传递中文参数值,中文值传递到后台后出现乱码并且以???形式出现 解决方法: 1.前端页面js文件中使用encodeURI()方法将所传递的中文值加密起来( 必须套两层 )。 var name=encodeURI(encodeURI(name)); 2.后台使用URLDecoder类进行解码 String name = URLDecoder.decode(name,"UTF-8"); 来源: CSDN 作者: y_bccl27 链接: https://blog.csdn.net/y_bccl27/article/details/104641716

JavaScript及C# URI编码详解

时光总嘲笑我的痴心妄想 提交于 2020-03-03 23:36:04
转载自: http://www.cnblogs.com/artwl/archive/2012/03/07/2382848.html 应用Uri编码,可以把一个或多个Uri作为另一个Uri的参数(如果不用Uri编码方法,我们可以自定义一套Uri特殊字符的转换规则,同样可以实现Uri参数化的目的) 混乱的URI编码   JavaScript中编码有三种方法:escape、encodeURI、encodeURIComponent   C#中编码主要方法:HttpUtility.UrlEncode、Server.UrlEncode、Uri.EscapeUriString、Uri.EscapeDataString   JavaScript中的还好,只提供了三个,C#中主要用的就有这么多,还没有列出其他编码(HTML),一多就弄不明白,弄不明白就心生恐惧,心生恐惧就变得苦逼,本文就向大家详细解释在JavaScript及C#中如何对URI进行编码的方法(注:本文不涉及到其他编码)。 escape:不推荐使用   原因:eacape是BOM中的方法,只能对ASCII符号正确编码,而encodeURI、encodeURIComponent可以对所有的Unicode符号编码。ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent()

区分escape、encodeURI和encodeURIComponent

淺唱寂寞╮ 提交于 2020-02-29 16:38:45
1.escape: escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。 编码之后的效果是%XX或者%uXXXX这种形式。 其中 ASCII字母、数字、@*/+ ,这几个字符 不会 被编码,其余的都会。 最关键的是,当你需要对URL编码时,请忘记这个方法,这个方法是针对字符串使用的,不适用于URL。 事实上,这个方法我还没有在实际工作中用到过,所以就不多讲了。 2.encodeURI和encodeURIComponent 对URL编码是常见的事,所以这两个方法应该是实际中要特别注意的。 它们都是编码URL,唯一区别就是编码的字符范围,其中 encodeURI方法 不会 对下列字符编码 ASCII字母、数字、~!@#$&*()=:/,;?+' encodeURIComponent方法 不会 对下列字符编码 ASCII字母、数字、~!*()' 所以encodeURIComponent比encodeURI编码的范围更大。 实际例子来说,encodeURIComponent会把 http:// 编码成 http%3A%2F%2F 而encodeURI却不会。 3.最重要的,我该什么场合用什么方法:     1、如果只是编码字符串,不和URL有半毛钱关系,那么用escape。 2、如果你需要编码整个URL,然后需要使用这个URL

225、javaScript对象---Global对象

强颜欢笑 提交于 2020-02-21 07:17:44
Golbal对象。全局对象,它里面的方法可以直接使用,而不需要对象,直接写方法名() 一、较常用方法 1、 decodeURI() 解码某个编码的 URI。 encodeURI() 把字符串编码为 URI。 decodeURIComponent() 解码一个编码的 URI。这个编码的字符串更多 encodeURIComponent() 把字符串编码为 URI。 2、 parserInt() 将字符串转为数字 *在字符串前加+-号可以转,但是使用parserInt()方法,如果字符串开头部分包含数字(遇到字符就停止),则返回结果会是这部分数字,而不是NaN。 3、 isNaN() 判断一个值是否为NaN。如果写成:数值==NaN,不管数值是什么,结果都是false,哪怕是NaN==NaN结果都是false,所以要用isNaN()方法 4、 eval() :计算 JavaScript 字符串,并把它作为脚本代码来执行。 注意:URI编解码的意思将在网页传输时,一些特殊字符比如说中文不能直接传递,需要根据相关字符集进行转码进行传输,这种传输前/后的编码解码行为就叫URI. <script> var str = "中华人名共和国?#"; var edu = encodeURI(str) document.write("edu:"+edu+ "<br>"); var du =

页面之间传递中文参数问题

我只是一个虾纸丫 提交于 2020-02-04 15:58:11
页面之间用地址栏后拼接参数的形式传递中文参数,可能出现乱码的情况,可以使用encodeURI("参数")加密 "../../module/log/logContent.html?detail="+encodeURI(detail)+"&type="+encodeURI(type)+"&noCache="+new Date().getTime() 页面jquery获取 function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return decodeURI(r[2]); return null; } 来源: CSDN 作者: 梦语惜缘 链接: https://blog.csdn.net/qq_25078011/article/details/104169097

URL编码转换:escape()、encodeURI()、encodeURIComponent()

巧了我就是萌 提交于 2020-01-25 21:11:32
escape() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 encodeURI() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,# encodeURIComponent() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处: 前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串),因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。 总结: 通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外

url地址传参中文乱码处理

僤鯓⒐⒋嵵緔 提交于 2020-01-24 07:24:54
1.将字符串转码:new String(“xxxxx”.getBytes("iso-8859-1"),"utf-8") 这种转码方式有很大的弊端,因为它是使用指定的字符集将此String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中,然后通过使用指定的字符编码将生成的byte 数组解码,构造一个新的String字符串。这种情况就有可能遇到的情况是,不能将一个汉字全部解码完。这样,前边的都能正常显示,但是最后一个字可能是 乱码。所以不建议使用这种方式。 2.在传参前转码:接收参数后再转码回来。 这种方式有两种: 第一种: 传参前:使用java.net.URLEncoder.encode("xxxx",“utf-8"),将中文转为16进制字符。 接收参数后:使用java.net.URLDncoder.decode("xxxx",“utf-8")将16进制字符转为中文。 这种方式需要注意的是,在使用encode转码后,会出现特殊字符,这时候,就需要将特殊字符替换为相应的16进制。因为特殊字符在url路径中做为参数传递时,也是乱码。 第二种: 传参前:encodeURI(“xxxx”) 。 接收参数后:使用java.net.URLDncoder.decode("xxxx",“utf-8")将16进制字符转为中文。 这种方式需要注意的是,在使用encodeURI转码后

JavaWeb请求中文乱码

眉间皱痕 提交于 2020-01-21 12:02:15
解决中文乱麻问题,页面端发出的数据作两次encodeURI   var name="张三";   encodeURI(encodeURI(name)); 后台解码:   URLDecoder.decode(name,"UTF-8"); 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