本文是学习网络上的文章时的总结以及自己的一点实践。感谢大家无私的分享。
昨天在做项目的时候,有一个页面间传递特殊字符的需求,查了一些资料。如今将自己的经验写出来。
首先。在前台编码
var fckPurpose=encodeURIComponent($.trim(jQuery("#fckPurpose").val()));
encodeURIComponent、encodeURI和escape三个函数区别在于个别字符是否编码的问题。
參考:
escape()、encodeURI()、encodeURIComponent()差别具体解释
然后在再后台(java)对字符做处理,由于Java中有一些字符有特殊含义
fckPurpose = fckPurpose.replaceAll("%", "%25"); fckPurpose = fckPurpose.replaceAll("\+", "%2B"); fckPurpose = fckPurpose.replaceAll("/", "%2F"); fckPurpose = fckPurpose.replaceAll("\?", "%3F"); fckPurpose = fckPurpose.replaceAll("#", "%23"); fckPurpose = fckPurpose.replaceAll("&", "%26");
特殊字符在前台的转换码,參见:URL 中“+”加号的问题
这样基本能够了