沙漠中的魚

          欲上天堂,先下地獄
          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&

          主站蜘蛛池模板: 上蔡县| 四川省| 凤阳县| 富裕县| 宝兴县| 开封县| 根河市| 平罗县| 吴江市| 新津县| 山丹县| 阜平县| 邵东县| 城市| 嵊州市| 肇东市| 朝阳县| 长泰县| 五华县| 延津县| 射阳县| 青浦区| 柯坪县| 北碚区| 庄浪县| 广宁县| 安乡县| 涞源县| 平利县| 洪湖市| 霞浦县| 澜沧| 桓台县| 花莲县| 张家港市| 宜宾市| 新疆| 沈阳市| 泸西县| 宁晋县| 获嘉县|