lyyb2001

只是为方便自己找记录而已
posts - 57, comments - 27, trackbacks - 0, articles - 5
  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理

UTF-8乱码问题

Posted on 2008-02-04 00:21 skycity 阅读(509) 评论(0)  编辑  收藏 所属分类: AJAX

在我的应用中,所有的jsp都设置成了UTF-8编码。deptList.jsp中的javascript如下:
<script language="javascript">
function _addDept(id,deptName)
{
 if(id==null || id==''){
  alert("请选择一个父部门");
  return false;
 }else{
  //window.open("/deptMenuTree.do?method=oaAddDept&deptId="+id+"&deptName="+deptName,null,null);
  
  modelJsp("/deptMenuTree.do?method=oaAddDept&deptId="+id+"&deptName="+deptName,"/deptMenuTree.do?method=showDeptMenu",600,450);
 }
}
function modelJsp(url,freshurl,w,h){
    var len = url.indexOf("?");
    url= url.replace(/\&/g,"i~~~~~~~~~ewislkdfwe934ksdfsdfslf");
    var Params = new Array(window,freshurl,parent.menuTree);
    var retValues=window.showModalDialog("/pages/common/ModelJsp.jsp?suntekModeJspUrl="+url, Params, "dialogHeight:" + h + "px; dialogWidth:" + w + "px; center: Yes; help: No; resizable: No; status: No;");
    if(retValues!=null){
        return retValues;
    }
    else{
        return null;
    }
}
</script>
此时弹出窗口的地址栏中为:
http://localhost/pages/common/ModelJsp.jsp?suntekModeJspUrl=/deptMenuTree.do?method=oaAddDepti~~~~~~~~~ewislkdfwe934ksdfsdfslfdeptId=0003i~~~~~~~~~ewislkdfwe934ksdfsdfslfdeptName=湛江市公安局
最后得到的deptname乱码了,显示?????????
使用了escape,地址栏为:
http://localhost/pages/common/ModelJsp.jsp?suntekModeJspUrl=/deptMenuTree.do%3Fmethod%3DoaAddDepti%7E%7E%7E%7E%7E%7E%7E%7E%7Eewislkdfwe934ksdfsdfslfdeptId%3D0003i%7E%7E%7E%7E%7E%7E%7E%7E%7Eewislkdfwe934ksdfsdfslfdeptName%3D%u6E5B%u6C5F%u5E02%u516C%u5B89%u5C40
明显得不到所需要的部门名
在JAVA中可以使用java.net.URLEncoder.encode (Joho,"UTF-8")%>">
但此处为了不再新的窗口打开输入窗口,所以编码的方式要放在javascript中。由于对javascript函数的不熟悉,找了很久才找到了一个encodeURI函数,使用encodeURI函数后,地址栏地址转换成类似MSN的地址
http://localhost/pages/common/ModelJsp.jsp?suntekModeJspUrl=/deptMenuTree.do?method=oaAddDepti~~~~~~~~~ewislkdfwe934ksdfsdfslfdeptId=0003i~~~~~~~~~ewislkdfwe934ksdfsdfslfdeptName=%E6%B9%9B%E6%B1%9F%E5%B8%82%E5%85%AC%E5%AE%89%E5%B1%80
只要确认各个转发的页面都设置成UTF-8,则最后得到的deptname为“湛江市公安局"



Lyyb2001

只有注册用户登录后才能发表评论。


网站导航: