對于出現的亂碼有2種解決方法:
1、在JS中,window.showModalDialog傳遞對象。
function tool_uploadFile(clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit) {//解決亂碼的問題,增加變量paramObj。10.06.01
var paramObj = {
"clmNo" : clmNo,
"billType" : billType,
"maxFileNum" : maxFileNum,
"fileType" : fileType,
"singleLimit" : singleLimit,
"totalLimit" : totalLimit
};
var r = window.showModalDialog(global.WEB_APP_NAME+"/core/jsp/common/uploadFile.jsp",paramObj,"dialogHeight:610px;dialogWidth:530px;center:1;help: 0; status: 0;");
return r;
}
在uploadFile.jsp中,通過js獲得參數。
<script>
var paramObj = window.dialogArguments;
var clmNo = paramObj.clmNo;
var billType = paramObj.billType;
var maxFileNum = paramObj.maxFileNum;
var fileType = paramObj.fileType;
var singleLimit = paramObj.singleLimit;
var totalLimit = paramObj.totalLimit;
tool.loadApplet('<%=agentIp%>','<%=agentPort%>','<%=orgId%>',clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit);
</script>
2、在JS中,window.showModalDialog通過?傳遞參數。
function tool_uploadFile(clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit) {
billType = encodeURIComponent(billType);
var r = window.showModalDialog(global.WEB_APP_NAME+"/core/jsp/common/uploadFile.jsp?clmNo="+clmNo+"&billType="+billType+"&maxFileNum="+maxFileNum+"&fileType="+fileType+"&singleLimit="+singleLimit+"&totalLimit="+totalLimit,"","dialogHeight:610px;dialogWidth:530px;center:1;help: 0; status: 0;");
return r;
}
在uploadFile.jsp中,通過java解析獲得參數。
String paramStr = request.getQueryString();
if (paramStr == null || paramStr.equals("")) {
return;
}

HashMap<String, ArrayList<String>> parameter = new HashMap<String, ArrayList<String>>();
String[] paramArr = paramStr.split("&+");
String[] arr = null;
for (int i = 0; i < paramArr.length; i++) {
arr = paramArr[i].split("=", 2);
ArrayList<String> lst = parameter.get(arr[0]);
if (lst == null) {
lst = new ArrayList<String>();
parameter.put(arr[0], lst);
}
if (arr.length < 2) {
lst.add("");
} else {
lst.add(URLDecoder.decode(arr[1], "UTF-8"));
}
}
ArrayList<String> paramlst = parameter.get("billType");
String billType = paramlst.get(0);
以上兩種方法,對應用服務器設置的url編碼沒有關系。
還有一種方法,就是轉換成GB2312,不過此種方法跟服務器編碼設置還有關系,有時還會出現亂碼:
billType = new String(billType.getBytes("ISO-8859-1"),"GB2312");
1、在JS中,window.showModalDialog傳遞對象。












在uploadFile.jsp中,通過js獲得參數。










2、在JS中,window.showModalDialog通過?傳遞參數。





在uploadFile.jsp中,通過java解析獲得參數。


























以上兩種方法,對應用服務器設置的url編碼沒有關系。
還有一種方法,就是轉換成GB2312,不過此種方法跟服務器編碼設置還有關系,有時還會出現亂碼:
billType = new String(billType.getBytes("ISO-8859-1"),"GB2312");