一个按扭触发一个JS方法 打开一个新的链接 链接上面的带汉字的参数;参数在打开的URL上还是汉字,但是传到后台ACTION中后就成了乱码;有没有遇到过类似问题的?帮忙解决一下;三Q
JS中的链接是这么写的
window.open(contextRootPath+"/registCount/getRegistCount.do?licenseNo="+licenseNo
licenseNo是带汉字的
注 :这一个问题在别人的机子上是不存在的 ,只是在我的机子上存在 ,所在编码不会有什么问题; 想问题的就是改一下电脑上面的什么东西会有好
下面有图:
我记JS URL乱码好像还有另外一种情况,这情况和游览器有关。IE会出现这样的情况,用IE的EVAL(记不太清楚了) 转换下就可以。
你可以使用URLEncoder.encode(word, "GBK");设置一下
两个解决方案
1.
客户端
[code="javascript"]
window.open(contextRootPath+"/registCount/getRegistCount.do?licenseNo=" + encodeURIComponent(licenseNo);
[/code]
服务器端
取出licenseNo后
[code="java"]
// encoding 的值取决于你页面 的 content type, 可能是GBK,GB2312或者UTF8
licenseNo = java.net.URLDecoder.decode(licenseNo, encoding);
[/code]
2.
如果Server是用的Tomcat, 那么在server.xml中, 在connector标签中增加URIEncoding="" 例如 URIEncoding="UTF-8"
这个encoding最好整个项目统一 GBK,GB2312或者UTF8 任选其一 但是一定要保持统一
window.open(contextRootPath+"/registCount/getRegistCount.do?licenseNo=" + encodeURIComponent(licenseNo)[color=red][b])[/b][/color];
少了一个括号