js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>
2、 进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");
3、 js使用数据时可以使用escape
[Huoho.Com编辑]
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
附:
转义字符的解析:
java.net.URLDecoder.decode(str);
附注:jsp传递中文参数乱码问题的解决。(web服务器:tomcat6,页面字符集编码:utf-8)
1.在tomcat6中设置字符集编码:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
2.定义转换字符集编码filter
定义filter
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharsetCodingFilter implements javax.servlet.Filter{
private String charset;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
req.setCharacterEncoding(charset);
res.setContentType("text/html;charset="+charset);
chain.doFilter(req, res);
}
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
this.charset=config.getInitParameter("charset");
}
}
web.xml
<!-- 编码转换 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.sagacity.framework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.在中文参数中,使用encodeURIComponent。
"abc.jsp?param="+encodeURIComponent("中文参数");
分享到:
相关推荐
常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集) - 来源:嘻嘻网 114_xixik_com_files
基于网址URL中特殊字符...Javascript中的escape,encodeURI和encodeURIComponent的区别 安全字符不同 兼容性不同 对Unicode字符的编码方式不同 适用场合不同 表单提交文档字符集会影响encodeURI吗?其他和Url编码相关
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数: unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 escape()函数 定义和...
将文件转换为 JavaScript 转义字符串的 Gulp 插件。 var jsEscape = require ( 'gulp-js-escape' ) ; // file.htm -> some text "needing" escaped gulp . src ( 'file.htm' ) . pipe ( jsEscape ( ) ) . dest ...
在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。 Python 使用反斜杠 \ 转义特殊字符...
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape, decodeURI, decodeURIComponent 。 下面简单介绍一下它们的区别: 1 escape()函数 定义和...
HTML转义字符大全:ISO Latin-1字符集,各种字符的转义
转义表单提交字符处理函数,可用于php或javascript的字符处理函数列表
C#-转义字符-EscapeChar
C语言转义字符大全
HTML_转义字符 HTML_转义字符
本文详细介绍了HTML转义字符 Escape Sequence
Python 转义字符逐个详解。一次性全面了解所有转义字符的含义及其用法。
避免gson使用时将一些字符自动转为Unicode转义字符
HTML和XML中的转义字符
在项目中遇到一个问题:在前端需要把后台返回的json字符串转换成一个js中的json对象,可是从后台返回的字符串中含有转义字符:\”, 在网上查到方法如下,可以处理这种情况: var page = eval(“(“+data+”)...
C语言常用转义字符表 C语言常用转义字符表
其它情况下escape,encodeURI,encodeURIComponent编码结果相同。 escape对0-255以外的unicode值进行编码时输出%u****格式 可以使用 unescape() 对 escape() 编码的字符串进行解码。 ECMAScript v3 反对使用该...
关于转义字符串整理的一些资料,包括转义字符穿的解释、组成信息和转义字符的使用
ASCII码的转义字符,以及郭天祥十天学会pic单片机的型号,单片机的入门级怎么学好单片机,学精!