日期:2014-05-17  浏览次数:20682 次

js 中文转码
JS代码如下,通过get方式传中文参数,action中取值有乱码,用decodeURIComponent,decodeURI方法试过没有效果。到底怎么样才能传递中文?帮助解答者,不胜感激
JScript code
function dialogFun(){
        var fdName = document.getElementsByName("fdName")[0].value;
        var url="<c:url value="/lx/lxdoc/lx_ment/lxDpet.do?method=addFolder&fdParentId=${lxdoc.fdParentId}&fdlxName="/>"+fdName;
        str = window.showModalDialog(url,'','dialogWidth:500px; dialogHeight:500px; status:0;scroll:0; help:0');
    }

fdName的值是一个中文,传递过去有乱码

------解决方案--------------------
乱码问题一般的解决方法是做个过滤器!如仍然有乱码的话那就得改tomcat的配置文件啦!
------解决方案--------------------
因为页面请求方式是get 没走过滤器 建议用如下的方法
在你的action里可以这样接收
String fdName=new String(request.getParameter("fdName").getByte("iso-8859-1"),"utf-8");

------解决方案--------------------
现在的页面的“相关问题”中还有很多,如果上个不行,再看一下其他的~~
------解决方案--------------------
今天我刚好遇到了相似的问题
解决方法如下:

1、在JS里对中文参数进行两次转码

var login_name = document.getElementById("loginname").value;
login_name = encodeURI(login_name);
login_name = encodeURI(login_name);
2、在服务器端对参数进行解码

String loginName = ParamUtil.getString(request, "login_name");
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");

具体请见http://blog.csdn.net/Seven_23/archive/2009/09/02/4510670.aspx
------解决方案--------------------
1.js文件中使用encodeURI()方法。

login_name = encodeURI(encodeURI(login_name));

2.action中URLDecoder解码

loginName = java.net.URLDecoder.decode(loginName,"UTF-8");
------解决方案--------------------
呵呵

恭喜


5楼的回答很好
------解决方案--------------------
接分....
------解决方案--------------------
来接分了