Changeset 35940 for lang/java

Show
Ignore:
Timestamp:
11/18/09 02:34:38 (5 years ago)
Author:
fumokmm
Message:

v1.1.4分反映。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/java/misc/hatenahaiku4j/branches/for-HTML-scraping/src/hatenahaiku4j/util/StringUtil.java

    r35871 r35940  
    4343         * @param str URLEncodeする文字列 
    4444         * @return エンコードされた文字列 
     45         * @see <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLEncoder.html">http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLEncoder.html</a> 
    4546         * @since v1.0.0 
    4647         */ 
     
    4849                String encoded = ""; 
    4950                try { 
    50                         // UTF-8でエンコードしてから半角スペース(+)を%20に変換する 
    51                         encoded = URLEncoder.encode(str, Const.UTF8).replaceAll("\\+", "%20"); 
    52                 } catch ( UnsupportedEncodingException e ) { 
     51                        // UTF-8でエンコードしてから 
     52                        // 「+」を「%20」に(半角スペース)、 
     53                        // 「.」を「%2E」に、 
     54                        // 「-」を「%2D」に、 
     55                        // 「*」を「%2A」に、 
     56                        // 「_」を「%5F」に変換する。 
     57                        encoded = URLEncoder.encode(str, Const.UTF8) 
     58                                .replaceAll("\\+", urlEncodeOther(" ")) 
     59                                .replaceAll("\\.", urlEncodeOther(".")) 
     60                                .replaceAll("-", urlEncodeOther("-")) 
     61                                .replaceAll("\\*", urlEncodeOther("*")) 
     62                                .replaceAll("_", urlEncodeOther("_")) 
     63                        ; 
     64                } catch (UnsupportedEncodingException e) { 
    5365                        // ignore it 
    5466                } 
    5567                return encoded; 
     68        } 
     69 
     70        /** 
     71         * {@link URLEncoder#encode(String, String)}にて変換してくれない文字をエンコードする。 
     72         *  
     73         * @param str エンコードする文字列 
     74         * @since v1.1.4 
     75         * @return 変換後の文字列 
     76         */ 
     77        private static String urlEncodeOther(String str) { 
     78                try { 
     79                        return "%" + String.format("%02x", str.getBytes(Const.UTF8)[0]).toUpperCase(); 
     80                } catch (UnsupportedEncodingException e) { 
     81                        // ignore it 
     82                } 
     83                return ""; 
    5684        } 
    5785