首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

extjs url 中文参数乱码有关问题!

2012-02-21 
extjs url 中文参数乱码问题!!! - Web 开发 / Ajax小弟初次接触Extjs有一问题,Google很久没有解决,请各位

extjs url 中文参数乱码问题!!! - Web 开发 / Ajax
小弟初次接触Extjs有一问题,Google很久没有解决,请各位高手,支招!谢谢诶。。。
所有页面以及Struts2的属性编码均为Utf-8..... 如果用params属性传参(已被注释掉)就会报错,无法显示。。。
采用URL传参,进入Action打印出来的属性均为乱码。

代码如下:
 function onSave() {
  if(infoForm.getForm().isValid()) {  
  var param = infoForm.getForm().getValues(false);
  //alert(param.roleDesc);
  infoForm.getForm().submit({ 
  url:'./json/role_add.action?role.roleid='
  +param.id+'&role.roleName='
  +param.name+'&role.roleDesc='+param.desc,
  method : 'post',
  // params: {
  // role.roleid:param.id,
  // role.roleName:param.name,
  // role.roleDesc:param.desc
  // },  
  waitMsg:'正在提交信息...' 
  //success: onRegSuccess, 
  //failure: onFailure 
   
  });
  }else { 
  Ext.Msg.alert('错误','信息','请信息填写完成在提交!'); 
  } 
 
  }


[解决办法]

CSS code
js、Ajax传参乱码,可以用encodeURI(encodeURI(url))进行2次转码。然后在服务器端:用URLEncoder.encode(request.getParmenter("url"),"UTF-8");这样就可以解决乱码了
[解决办法]
CSS code
'./json/role_add.action?role.roleid='                        +encodeURI(encodeURI(param.id))+'&role.roleName='                        +encodeURI(encodeURI(param.name))+'&role.roleDesc='                        +encodeURI(encodeURI(param.desc)),这里可以只用一次就可以了encodeURI(encodeURI('./json/role_add.action?role.roleid='+param.id+'&role.roleName=' +  param.name));我记得我用Ext传参数的时候没有用这个转换,也不需要转换的。不知道你的为什么会乱码ext也有自带的转码、解码方法Ext.encode()这个方法可以穿一个js的对象,它会自动转换成&name=name的形式非常好用。Ext.decode() 

热点排行