斷點(diǎn)

          每天進(jìn)步一點(diǎn)點(diǎn)!
          posts - 174, comments - 56, trackbacks - 0, articles - 21

          JSP頁面上傳圖片時(shí)出現(xiàn)的亂碼

          Posted on 2010-06-01 19:22 斷點(diǎn) 閱讀(614) 評論(0)  編輯  收藏 所屬分類: JScript
          對于出現(xiàn)的亂碼有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獲得參數(shù)。
          <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通過?傳遞參數(shù)。
          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解析獲得參數(shù)。
          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);


          以上兩種方法,對應(yīng)用服務(wù)器設(shè)置的url編碼沒有關(guān)系。

          還有一種方法,就是轉(zhuǎn)換成GB2312,不過此種方法跟服務(wù)器編碼設(shè)置還有關(guān)系,有時(shí)還會出現(xiàn)亂碼:
          billType = new String(billType.getBytes("ISO-8859-1"),"GB2312");
          主站蜘蛛池模板: 梁河县| 师宗县| 右玉县| 兴城市| 永川市| 航空| 扶沟县| 秦安县| 肃南| 那曲县| 阆中市| 呈贡县| 莱芜市| 曲沃县| 西贡区| 漯河市| 鹤岗市| 中西区| 自贡市| 江西省| 漾濞| 威海市| 同仁县| 进贤县| 湘潭市| 喀什市| 保德县| 南平市| 鹤峰县| 旬邑县| 瓦房店市| 东辽县| 昆山市| 建湖县| 舒城县| 穆棱市| 浦东新区| 克拉玛依市| 西乌珠穆沁旗| 湖北省| 耒阳市|