jsp页面超链接传中文终极解决办法-自定义标签
在做web前端页面的时候,经常碰到传中文问题。网上有许多方案,但仍不能根治,最终要用js或者java的encode相关方法。
常规方案有三部:
1.改tomcat的server.xml中URIEncodeing为utf-8
2.页面中编码设置为utf-8
3.整个项目编码使用utf-8
?
我这样处理后,在火狐下,不会出现乱码,但IE中奇数个中文时仍有乱码。不过可以通过在页面中用URLEncoder.encode()方法解决,但如果在jsp页面里用<%=java.net.URLEncoder.encode(request.getAttribute('xxx'))%>又显得繁琐且不美观。
?
索性自己写个自定义标签来处理
使用此方法就不会再出现IE奇数个汉字成乱码的问题了,不多说,上代码
?
?
EncodeTag.java
?
?
encode.tld(此文件需放在你的web项目的src目录下)
?
?
在jsp中头部引入
?
?
在jsp中使用
<a href="xxx/xxx.do?key=<en:urlEncode key="${obj.key}"/>">xxxx</a></div>