问题描述
java的action里字符串中含有一个“=”,传到前台后,变为“u003d”,为什么会变成这样的字符呢? 问题补充:7454103 写道
解决方案
前台?<html> <head> <title>My JSP 'test.jsp' starting page</title> <script language="javascript"> var str="u003d"; var GBKUnicodeConverter={ ToUnicode:function(str){ return escape(str).toLocaleLowerCase().replace(/%u/gi,'\u'); } ,ToGBK:function(str){ return unescape(str.replace(/\u/gi,'%u')); }}; alert(GBKUnicodeConverter.ToGBK(str));</script> </head> <body > </body> </html>
解决方案二:
str.replace(/\u/gi,'%u')", 字符串的 替换函数嘛! 正则表达式 和 要替换 成 的字符
解决方案三:
建议在前台将业务数据的特殊字符(比如=,&,?,%等)先进行转码,然后再传入后台(链接中的业务数据特殊字符也一样处理)。可以进行如下类似转码:var regs = /%/gi;var newstr = 'jaoidsufji%
解决方案四:
*&7';newstr = newstr.replace(regs,escape('%'));
解决方案五:
你能否把你的代码贴出来看看,在前台是怎么显示的?你说的变成encoding编码是以查看源码的方式还是打开浏览器页面上的=就成encoding编码了?
解决方案六:
你用什么方式接受的?这个字符串是要显示出来吗?如果你struts2的标签的话标签有一个功能escape="false"默认是true 你写成false就不会出现encoding编码了
解决方案七:
是转码了吧! js encoding 或者其他方式后台转码下 或者试试str=java.net.URLDecoder.decode(str);