0 0

Struts2中js传值乱码问题!5

js代码
  function submit(){
	  var title=document.getElementById("test").value;
	  var url="/ActionTest/ActionFirst.action?test="+title.innerHTML;
	  window.location.href=encodeURI(url);
	  }

页面中的值!
 <input type="text" name="test" id="test"/>
 <input type="submit" value="提交" onClick="javascript:submit();"/>

服务器端解码后打印
System.out.println(java.net.URLDecoder.decode(test, "UTF-8"));

已经尝试了目前的各种方法,两次encodeURI编码等,值传输到action后依旧乱码!
struts2中配置文件已经进行了编码设置
引用
<constant name="struts.i18n.encoding" value="UTF-8" />

页面中的pageEncoding设置为了utf-8

请问有没有朋友遇到过这样的问题?该怎么解决呢?
问题补充:
如果是用form表单传值,是没有问题的,而采用这种tets.action?key=value&key2=value2的方式直接url传值就会出现乱码问题!
问题补充:
不要encodeURI还是乱码!加上encodeURI在服务器端解码后发现仍旧是乱码,所以可以预见,在以
var title=document.getElementById("test").value;
window.location.href="/ActionTest/ActionFirst.action?test="+title;

传值的时候,title就已经乱码了!但是alert输出时却是正常的!
这个问题不知道其他有没有朋友遇见过!会不会是struts2的问题呢?
2009年10月23日 10:09

6个答案 按时间排序 按投票排序

0 0

前台转两次码,后台转一次码。。

2009年10月23日 10:42
0 0

  function submit(){
	  var title=document.getElementById("test");
	  var url="/ActionTest/ActionFirst.action?test="+encodeURI(encodeURI(title.innerHTML));
	  window.location.href=url;
	  }


后台
String test = request.getParameter("test")+"";
test = java.net.URLDecoder.decode(test, "UTF-8"));

2009年10月23日 10:40
0 0

看客户端 页面源码 有没有
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

2009年10月23日 10:31
0 0

把encodeURI去掉看看,或者在地址栏直接输 "tets.action?key=value&key2=value2" 试试

2009年10月23日 10:30
0 0

而且 js 中 encodeURI 并不是解决UTF8编码问题 它是把空格转 %20 中文转%XX

2009年10月23日 10:28
0 0

引用
#
#  var title=document.getElementById("test").value; 
#  var url="/ActionTest/ActionFirst.action?test="+title.innerHTML;


这里JS 本身都有问题  title 已经是 字符串了 还点 innerHTML?

2009年10月23日 10:15

相关推荐

Global site tag (gtag.js) - Google Analytics