读书人

JavaScript转义字符(js中escape,enco

发布时间: 2012-07-01 13:15:00 作者: rapoo

JavaScript转义字符(js中escape,encodeURI,encodeURIComponent三个函数的区别)【转】

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

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("中文参数");

读书人网 >JavaScript

热点推荐