![](/img/trans.png)
[英]How can I escape reserved URL characters identically from Java and Ruby?
[英]How I can escape URL in Java (docs are not clear)?
我找到了各種帖子,用java.net.URLEncoder.encode
完成Java中的轉義。 但是我在URL
docs中找到了:
也可以使用
URLEncoder
和URLDecoder
類,但僅用於HTML表單編碼,這與RFC2396中定義的編碼方案不同。
有人能解釋一下這種情況嗎?
您可以使用URI。 例如:
URI uri = new URI("http","google.com","/ a z.html","asd= z%#@@#");
System.out.println(uri.toString());
//returns http://google.com/%20a%20z.html#asd=%20z%25%23@@%23
請注意,單個參數構造函數不會轉義字符,因此如果您執行以下操作,它將引發異常:
URI uri = new URI("http://google.com/ a z.html?asd= z%#@@#");
從URI中,您可以通過執行以下操作獲取URL:
URL uri.toURL();
該文檔正確建議使用URI類。 仍然提到URLEncoder的原因是我猜歷史原因URLEncoder自1.0以來一直存在,而在1.4中添加了URI。
URLEncoder,盡管它的名字,用於編碼URL 參數或POST參數。
在查詢字符串之前正確編碼URL的正確方法是通過新URI(null,String,null).toURL()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.