沙漠中的魚

          欲上天堂,先下地獄
          posts - 0, comments - 56, trackbacks - 0, articles - 119
            BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          URL中文參數值亂碼問題解決

          Posted on 2008-11-24 10:35 沙漠中的魚 閱讀(916) 評論(0)  編輯  收藏 所屬分類: Java
                 最近在做Infoportal集成URL地址遇到一個小小的問題,在URL地址上如果包含有中文參數時,在瀏覽器地址上就會出現亂碼,想到了可能需要把URL參數值轉碼,寫了一段代碼測試一下。但是發現有一個問題,就是用java字符串中的split當分割“?”時,直接報java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0異常,原來這個是轉義字符,稍微修改了一下就好了

          程序

          String url="http://servername?country=中國";
                  String[] segment
          =url.split("\\?");
                  StringBuilder newUrl
          =new StringBuilder();
                  newUrl.append(segment[
          0]+"?");
                  String[] argStr
          =segment[1].split("&");
                  
          for(int i=0;i<argStr.length;i++){
                      String[] args
          = argStr[i].split("=");
                      
          if(args==null ||args.length==0)
                          
          continue;
                      newUrl.append(args[
          0]);
                      
          if(args[1]!=null){
                          
          try {
                              String argValue
          =URLEncoder.encode(args[1],"UTF-8");
                              newUrl.append(
          "="+argValue);
                          }
           catch (UnsupportedEncodingException e) {
                              e.printStackTrace();
                          }

                      }

                      newUrl.append(
          "&");
                  }

                  System.out.println(newUrl.toString());

          原URL:http://servername?country=中國

          轉碼后的URL:http://servername?country=%E4%B8%AD%E5%9B%BD&

          主站蜘蛛池模板: 文成县| 穆棱市| 大竹县| 来安县| 和静县| 周口市| 香河县| 平阴县| 开阳县| 西城区| 扬中市| 嘉定区| 湖州市| 长岭县| 大方县| 广汉市| 威海市| 如东县| 天津市| 华亭县| 荔波县| 聊城市| 奉化市| 陕西省| 弋阳县| 同心县| 上犹县| 广灵县| 龙门县| 东乌| 瑞金市| 高雄县| 临朐县| 白河县| 南涧| 冀州市| 黄浦区| 东阿县| 麻城市| 大埔县| 佛冈县|