encodeuri

encodeURI与encodeURIComponent

£可爱£侵袭症+ 提交于 2019-12-03 07:23:40
js对url进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, 相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、encodeURIComponent encodeURIComponent() is a global function that returns an encoded copy of its s argument. ASCII letters and digits are not encoded, nor are the following ASCII punctuation characters: - _ . ! ~ * ' ( ) All other characters, including punctuation characters such as /, :, and # that serve to separate the various components of a URI, are replaced with one or more hexadecimal escape sequences. Note the difference between encodeURIComponent() and encodeURI(): encodeURIComponent(

Javascript中escape(), encodeURI()和encodeURICompo...

末鹿安然 提交于 2019-12-03 07:23:29
escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者,今天我就在这里对这三个方法详细地分析与比较一下。 escape() 方法 MSDN JScript Reference中如是说: The escape method returns a string value (in Unicode format) that contains the contents of [the argument]. All spaces, punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding, where xx is equivalent to the hexadecimal number representing the character. For example, a space is returned as "%20." 鄙人译:escape方法以Unicode格式返回一个包含传入参数内容的string类型的值。 Escape方法会将传入参数中所有的空格、标点符号、重音字符以及其它任何非ASCII字符替换为

js escape, encodeURI, encodeURIComponent

痴心易碎 提交于 2019-12-03 07:23:16
escape, encodeURI, encodeURIComponent 1)基本介绍 js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, 相应3个解码函数: decodeURI,decodeURIComponent 2)用途 1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。 例如:"http://www.baidu.com?name="+encodeURIComponent(value); 2、 进行url跳转时可以整体使用encodeURI 例如:Location.href="/encodeURI"("http://cang.baidu.com/do/s?word=百度&ct=21"); 3、 js使用数据时可以使用escape 例如:对数据简单的操作时。 4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。 3)区别 1、 encodeURIComponent 将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。他会将URL的路径分隔符也编码,所以,他只适合编码参数的值 2、 encodeURI 返回编码为有效的统一资源标识符

get方式中文参数乱码解决方法

匿名 (未验证) 提交于 2019-12-03 00:39:02
encodeURI(encodeURI("员工数据模板.xls")); 下面是拷贝其他文章的内容: 首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的。 一,get请求参数中文乱码的解决办法 对于get请求解决中文乱码有两种途径一种是修改tomcat默认的编码方式为"UTF-8" 在tomcat的server.xml里把 <Connector connectionTimeout="50000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> 修改为   使用这种方式带来的问题是在你本机上这么做没有问题,你无论怎么去修改你tomcat上的配置都没问题, 但是测试环境和生产环境的服务器不是轻易说改就能改的,特别是有些公司的服务器是租赁的,那么在我们 不知道测试环境和生产环境服务器配置的时候就要使用以下的方法来解决get请求的中文乱码问题。 来自页面的一个get请求: window.location.href = getContextPath()+"/manage/user/detail?name="+encodeURI(encodeURI("小明")); 服务器端: String name = request

escape,encodeURI,encodeURIComponent

陌路散爱 提交于 2019-12-01 23:04:37
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。 语法 escape(string) 参数 描述 string 必需。要被转义或编码的字符串。 返回值 已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。 说明 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。 2 encodeURI()函数 定义和用法 encodeURI() 函数可把字符串作为 URI 进行编码。 语法 encodeURI(URIstring) 参数 描述 URIstring 必需。一个字符串,含有 URI 或其他要编码的文本。 返回值 URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。 说明 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

java javascript 的编码

可紊 提交于 2019-12-01 18:47:55
escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符 在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。 不会被此方法编码的字符: @ * / + encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' encodeURIComponent() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。 不会被此方法编码的字符:! * ( ) ' 因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使 用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。 另外,encodeURI

Javascript Query String Parsing

老子叫甜甜 提交于 2019-12-01 18:20:50
1. URL encoding 为什么要进行URL encoding?这是因为,有些字符是不能成为URL一部分的,举个例子,比如空格符。另外,有些有特殊含义的保留字符,比如#,作为HTML锚点,用于定位到HTML文档的某个位置上;=符号在URL里用于分割URL参数的key和value。 URL encoding依据以下规则: 字母(A–Z 以及 a–z),数字(0-9)以及'.','-','~'和'_'这些字符不进行编码 空格符要编码成+或者"%20" 所有其他的字符,要被编码成%HH这样形式的 十六进制 表示;任何非ASCII字符,应该要取UTF-8的十六进制(或者是其他编码),以%HH表示; NOTE: 更多详细信息,可以参考这篇WIKI—— Query String 。关于空格符以及其他的保留字符,可以去查阅标准文档 RFC 1738 。 2. Javascript Encode/Decode Functions Javascript内置了几对编码和解码的函数。起初只有escape和unescape这一对方法,但后来这对方法已经不推荐使用了,新的标准制定了两对新的编码和解码函数:encodeURI和decodeURI以及encodeURIComponent和decodeURIComponent。 但实际上内置的编码解码函数,对于URL query

url 传递参数(特殊字符)解决方法

…衆ロ難τιáo~ 提交于 2019-11-30 11:30:34
url 传递参数(特殊字符)解决方法 首先设置 apache 配置文件, server.xml 在 port=8080 那一行中加上 URIEcoding=GBK 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。下表中列出了一些URL特殊符号及编码       十六进制值 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数的值 %3D 解决的方法: replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace(/\-/g,"!")则可以替换掉全部匹配的字符(g为全局标志)。 replace() js中替换字符变量如下: data2=data2.replace(/\%/g,"%25"); data2=data2.replace(/\#/g,"%23"); data2=data2.replace(/\&/g,"%26"); --------------------------------------------

JS URL传中文参数引发的乱码问题

[亡魂溺海] 提交于 2019-11-29 11:10:34
今天的项目中碰到了一个乱码问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决。 解决方法如下: 1、在JS里对中文参数进行两次转码 代码如下: var login_name = document.getElementById("loginname").value; login_name = encodeURI(login_name); login_name = encodeURI(login_name); 2、在服务器端对参数进行解码 代码如下: String loginName = ParamUtil.getString(request, "login_name"); loginName = java.net.URLDecoder.decode(loginName,"UTF-8"); 在 使用url进行参数传递时,经常会传递一些中文名的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用 UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样。 javaScript中的编码方法: escape() 方法: 采用 ISO

URL编码与解码

房东的猫 提交于 2019-11-27 10:04:02
在项目中碰到了ajax传来的参数,后台接收值乱码(如下图)的问题 在此记录一下 前台: 后台: 解决问题 为什么需要编码 怎样编码 实际出现的问题解决方法 1.为什么需要编码? URL 只能使用 ASCII 字符集来通过因特网进行发送。 也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号 这意味着 如果URL中有汉字,就必须编码后使用。 但是麻烦的是 标准的国际组织并没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。 这导致"URL编码"成为了一个混乱的领域。 1.1 浏览器对于中文的编码 Chrome浏览器和火狐的浏览器是一样的如下图,"文"和"章"的utf-8编码分别是"E6 96 87"和"E7 AB A0" , 下图所示的"%e6%96%87%e7%ab%a0"就是按照顺序,在每个字节前加上%而得到的 Edge浏览器和IE浏览器是一样的,如下图 这个的编码方式我没看出来,希望高手指点 1.2 需要编码的原因还有几点: 你有没有想过,Ukey=value这种传参方式式中, Value中包含 ? 或者 = 怎么办呢 你有没有想过,不同的操作系统、浏览器、不同的网页字符集(charset)会对你的传值造成影响呢 如果你都考虑过,毫无疑问你早就知道需要编码的原因了 2.怎样编码? Url编码通常也被称为百分号编码(percent