2012-04-18 17 views
0

encodeURI()をJavaで同等のJavaScriptで教えてください。encodeURI相当のものは必要ありませんencodeURIComponent()と同等のURLEncoder.encode

これは、encodeURIComponent()に相当することに気付いていますが、

result = URLEncoder.encode(component, "UTF-8") 
    .replaceAll("\\%28", "(") 
    .replaceAll("\\%29", ")") 
    .replaceAll("\\+", "%20") 
    .replaceAll("\\%27", "'") 
    .replaceAll("\\%21", "!") 
    .replaceAll("\\%7E", "~");" 
+0

@MarkoTopolnik、次回からそのようなことをフラグしてください。コメントする必要はありません。そうでなければ、あなたのコメントは、仲裁者によってスタッフが削除されたとき意味がありません:) – tusar

+0

それはAndrewのコメントに対する楽しい応答でした、私はコメントする最初のものではありませんでした。しかし、私はAndrew'sがなくなった今、コメントを喜んで削除します。 –

答えて

0

このようなものを試すこともできます。

public static String encodeURIComponent(String url) { 
     try { 
      return URLEncoder.encode(url, "UTF-8") 
       .replaceAll("\\+", "%20") 
       .replaceAll("\\%21", "!") 
       .replaceAll("\\%27", "'") 
       .replaceAll("\\%28", "(") 
       .replaceAll("\\%29", ")") 
       .replaceAll("\\%7E", "~"); 
      //the slow option: 
      //new ScriptEngineManager().getEngineByName("JavaScript")...etc 
     } catch (UnsupportedEncodingException e) { 
      //never 
     } 
    } 

    public static String encodeURI(String url) { 
      return encodeURIComponent(url) 
       .replaceAll("%3A", ":") 
       .replaceAll("%2F", "/") 
       .replaceAll("%3F", "?") 
       .replaceAll("%3D", "=") 
       .replaceAll("%26", "&"); 
    } 

ネストと完全な仕様をサポートするためには、さらに多くの作業が必要です。

関連する問題