URL传参带特殊字符,js中对中文编码解码
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
如果不使用转义字符,这些编码就会当URL中定义的特殊字符处理。
下表中列出了一些URL特殊符号及编码 十六进制值
1.+ URL 中+号表示空格 %2B
2.空格 URL中的空格可以用+号或者编码 %20
3./ 分隔目录和子目录 %2F
4.? 分隔实际的 URL 和参数 %3F
5.% 指定特殊字符 %25
6.# 表示书签 %23
7.& URL 中指定的参数间的分隔符 %26
8.= URL 中指定参数的值 %3D
/***
* 对 特殊字符进行重新编码
* **/
function URLencode(sStr){
return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F').replace(/\#/g,'%23');
}
在通过url传参时,有些特殊字符在jsp页面间传递时变成了%+ASCII码,所以在传递前对其进行编码,接收后再转码就OK了
通过encodeURI()方法编码,再通过decodeURI()转码即可
分享到:
相关推荐
对于JSP项目中通过URL传参涉及到特殊字符的情况,正确的做法是在前端使用JavaScript的`encodeURIComponent()`函数进行编码,在后端使用Java的`URLDecoder.decode()`进行解码。这样可以确保特殊字符被正确处理,避免...
URL编码是一种用来转换URL中特殊字符(包括中文字符)的方法,它将这些特殊字符转换为一个或多个可用于URL的ASCII字符序列。例如,“空格”会被编码为“%20”。 ##### 1.1 URL编码原理 - **编码规则**:大多数非...
本篇文章将详细探讨“GET中文传参(解码)”这一主题,以及如何正确处理中文字符在URL中的传输。 首先,我们需要理解编码和解码的概念。编码是将可读的字符转换为二进制表示的过程,而解码则是将二进制数据还原为...
1.配置文件web.config中 在节中加上整个网站的编码方式。 ”GB2312″ requestEncoding=”GB2312″ responseEncoding=”GB2312″/> 这样参数就以gb2312的中文编码方式传输了。而一般默认是utf-8. 2.在传参是先编码在...
这对于包含中文、特殊符号的字符串特别有用,因为它可以确保这些字符在URL中被正确编码,避免引起解析错误。例如,中文字符 "爱" 在 `escape` 后会变成 `%E7%88%B1`。 在上述描述的场景中,当尝试传递的字符串是 `...
使用JavaScript的`escape()`或`encodeURIComponent()`函数对参数进行编码,确保它们能够安全地通过URL传递给服务器,然后在服务器端使用相应的解码函数(如PHP的`urldecode()`)进行解码,即可正确处理包含特殊字符...
在JavaScript中,我们使用`encodeURI`对URL中的中文字符进行编码,而`decodeURI`则用于解码。需要注意的是,由于`encodeURI`不会对所有字符进行编码,对于一些特殊字符,如`&`、`+`、`/`、`?`和`#`等,需要使用`...
需要特别注意的是,如果在字符串方式中未对特殊字符进行编码,那么这些字符可能会导致参数解析错误,因为服务器端会把这些字符当作分隔符来处理。例如,如果密码中包含&,而没有进行编码,服务器可能会将密码后的...
GET请求中的参数是通过URL直接传递的,当参数包含中文字符时,如果URL编码不正确或者服务器端没有正确地解码这些参数,就会出现乱码问题。主要原因包括: 1. **客户端与服务器端编码不一致**:客户端发送请求时使用...
当URL中包含的中文字符数量为奇数时,最后一个未配对的中文字符无法正确地被编码,导致接收端解码失败,从而出现乱码。 #### 2.2 具体案例分析 假设一个URL中包含了一个未配对的中文字符“中”(UTF-8编码下为E4B8...
以上两种方法在处理URL中的参数时,需要注意如果参数值中包含中文字符,那么在发送参数之前需要对其进行URL编码(使用 `encodeURI` 函数),在接收参数之后需要对URL编码的字符串进行解码(使用 `decodeURI` 函数)...
URL编码是一种将非ASCII字符或特殊字符转换为可安全包含在URL中的形式的方法。在JavaScript中,我们可以使用`encodeURIComponent()`、`encodeURI()`和`escape()`函数来编码URL参数。其中,`encodeURIComponent()`是...
综上所述,在web报表开发过程中,当需要传递包含中文或特殊字符的参数时,通过使用cjkEncode对这些参数进行编码是一种有效的解决方案。在实际应用中,可以根据页面的具体需求以及是否已经加载了jquery框架来选择合适...
在实际解决乱码问题的过程中,如果发现使用Base64加密传输中文数据还会出现问题,可以改用URL编码的方式来传输数据,即使用JavaScript的`encodeURI`函数对数据进行两次URL编码,后端接收到后进行一次URL解码即可。...
此外,JavaScript提供了一个内置函数`encodeURIComponent()`,可以用于转义URL中的特殊字符。但在这个问题中,可能需要自定义函数来特定处理加号(+)的转义,如`function rStr(str) { str = str.replace(/\+/g, "%...
在URL中,除了字母、数字以及少数符号(-_.)之外,其它字符都需要被编码。在JavaScript中,编码函数通常为`encodeURIComponent`和`encodeURI`,它们会将特定字符转换为百分号(%)后跟两位十六进制数的形式。例如,...
在JavaScript中,URL传参时遇到的中文乱码问题通常涉及到字符编码的转换。当URL包含中文字符时,浏览器和服务器之间可能由于编码格式不一致导致乱码。为了解决这个问题,我们需要理解JavaScript中用于URL编码的相关...
在发送Ajax请求时,可以使用JavaScript内置的`encodeURI`或`encodeURIComponent`函数对数据进行编码,以确保数据在传输过程中不会因为特殊字符而出现乱码。 ```javascript var ckName = "张三"; var data = "ckName...
在浏览器端对要传递的中文参数进行编码处理可以使用 encodeURI 函数,对服务器端传递的中文参数进行解码可以使用 URLDecoder.decode 函数。在服务器端代码中,需要确保 jsp 页面的编码方式为 utf-8。 二、JSP 与...