encodeuri

关于jsp访问路径带中文值需encodeURI两次的原因

荒凉一梦 提交于 2019-11-27 08:21:49
jsp往后台传值的时候,一般可以通过路径传值和ajax传值。 其中通过ajax post传值不会出现中文乱码现象,但路径传值如果不通过特殊的编码,后台可能获取到的是一串乱码。 encodeURI可以帮助我们完成中文编码,encodeURI默认是采用utf-8进行编码的。其中中文在utf-8的编码格式中是由3个字节组成,每个字节转成16进制后会在前面添加一个%。 如 '江' 编码一次后 -> '%E6%B1%9F' 但是后台获取数据的时候,会自动对值进行解码,此时后台解码的格式可能是'iso-8859',而%会被当作转义字符,那么解码后就可能出现一堆乱码了。 因此此处需要对中文进行两次编码,将'%'也编码一次->'%25',这样不论后台是什么解码格式,得到的值都将是中文utf-8编码一次的结果。 如 '江' 编码两次后 -> '%25E6%25B1%259F' 后台对uri路径值 自动解码一次 ->'%E6%B1%9F' 再通过URLDecoder.decode()方法对值进行'utf-8'格式解码 -> '江' ps: ajax load()方法传中文参数的时候,只需要encodeURI一次 URL 中中文转码 1.将字符串转码: new String(“xxxxx”.getBytes("iso-8859-1"),"utf-8") 这种转码方式有很大的弊端

js转码

空扰寡人 提交于 2019-11-27 04:10:17
var flowName = encodeURI(encodeURI(data.name)); // data.name为需要转码的字符串 跳转到另外一个页面后,直接在js中解码: var flowName = decodeURI("${param.flowName}"); 如果是在JAVA后端转码,转码方式: String flowName = new String(java.net.URLDecoder.decode(request .getParameter( "flowName"), "utf-8")); 转载于:https://www.cnblogs.com/ivan0626/p/3368693.html 来源: https://blog.csdn.net/weixin_30823833/article/details/99358707

关于URL编码(转)

流过昼夜 提交于 2019-11-27 00:20:34
转自 http://www.ruanyifeng.com/blog/2010/02/url_encoding.html 一、问题的由来 URL就是网址,只要上网,就一定会用到。 一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址 “http://www.abc.com”,但是没有希腊字母的网址“http://www.aβγ.com”(读作阿尔法-贝塔-伽玛.com)。这是 因为网络标准 RFC 1738 做了硬性规定: "...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL." “只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于 URL。” 这意味着,如果URL中有汉字,就必须编码后使用。但是麻烦的是,RFC 1738没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。这导致“URL编码

JQuery与Ajax常用代码

大兔子大兔子 提交于 2019-11-27 00:02:22
传统ajax Code < script language ="javascript" > var xmlHttp; function createXMLHttpRequest(){ if (window.ActiveXObject) xmlHttp = new ActiveXObject( " Microsoft.XMLHTTP " ); else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); } function startRequest(){ createXMLHttpRequest(); xmlHttp.open( " GET " , " 14-1.aspx " , true ); xmlHttp.onreadystatechange = function (){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200 ) document.getElementById( " target " ).innerHTML = xmlHttp.responseText; } xmlHttp.send( null ); } </ script > JQuery方法 Code < script language ="javascript" src ="jquery

js编码问题

旧城冷巷雨未停 提交于 2019-11-26 17:28:05
今天在做项目时,代码差不多都写完了,然后就差个url重写了 觉得很简单!以前也有用过,谁知道在对中文编码时出了问题 由于搜索条件带中文,需要对中文进行编码,就只能在js里面编码了! 用了escape()编码,结果一直出错,后来查了下原来escape是用16进制的 后来换了encodeURI编码,这个是utf8编码的就可以了! 记录下! js编码区别 escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。 不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' encodeURIComponent() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。 不会被此方法编码的字符:! * ( ) ' 因此

js编码问题

让人想犯罪 __ 提交于 2019-11-26 17:27:50
今天在做项目时,代码差不多都写完了,然后就差个url重写了 觉得很简单!以前也有用过,谁知道在对中文编码时出了问题 由于搜索条件带中文,需要对中文进行编码,就只能在js里面编码了! 用了escape()编码,结果一直出错,后来查了下原来escape是用16进制的 后来换了encodeURI编码,这个是utf8编码的就可以了! 记录下! js编码区别 escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。 不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' encodeURIComponent() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。 不会被此方法编码的字符:! * ( ) ' 因此

js编码问题

本秂侑毒 提交于 2019-11-26 17:27:00
今天在做项目时,代码差不多都写完了,然后就差个url重写了 觉得很简单!以前也有用过,谁知道在对中文编码时出了问题 由于搜索条件带中文,需要对中文进行编码,就只能在js里面编码了! 用了escape()编码,结果一直出错,后来查了下原来escape是用16进制的 后来换了encodeURI编码,这个是utf8编码的就可以了! 记录下! js编码区别 escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。 不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' encodeURIComponent() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。 不会被此方法编码的字符:! * ( ) ' 因此

URL编码

 ̄綄美尐妖づ 提交于 2019-11-26 17:04:19
(转载) 一、问题的由来   问题:当url地址中包含&、+、%等特殊字符(主要是传递参数时,参数的内容中包含这些字符)时,地址无效。比如http://10.190.0.0:108/doc/test+desc2.bmp,若文件名中出现+/&等特殊字符,后台会报404的错误,即web服务器找不到页面或者资源。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址“http://www.abc.com”,但是没有希腊字母的网址“http://www.aβγ.com”(读作阿尔法-贝塔-伽玛.com)。这是因为网络标准RFC 1738做了硬性规定:   "...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'

javascript的URL编码和解码

牧云@^-^@ 提交于 2019-11-26 11:28:24
在 使用url进行参数传递时,经常会传递一些中文名的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用 UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样。 javaScript中的编码方法: escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码 (xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字 符: @ * / + 英文解 释: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