簡體   English   中英

我如何在Java中轉義URL(文檔不清楚)?

[英]How I can escape URL in Java (docs are not clear)?

我找到了各種帖子,用java.net.URLEncoder.encode完成Java中的轉義。 但是我在URL docs中找到了:

也可以使用URLEncoderURLDecoder類,但僅用於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM