我試圖用查詢參數編碼構造Java中的URL。編碼器應該轉義字符'+'。我遇到的所有方法都對它進行了編碼。有什麼辦法可以實現這一點,或者我需要編寫自定義編碼器嗎? 謝謝!在Java中對URL進行編碼,同時保留特殊字符
0
A
回答
0
如果您使用Spring.This包,還可以嘗試「UriComponentsBuilder」,該包還包含可能滿足您需求的其他選項。
UriComponentsBuilder.fromPath("URL String");
如果你不使用Spring可以使用 「UrlValidator」 由 「apache.commons」
String[] schemes = {"http","https"}; // DEFAULT schemes = "http", "https", "ftp"
UrlValidator urlValidator = new UrlValidator(schemes);
if (urlValidator.isValid("urlString")) {
System.out.println("URL is valid");
} else {
System.out.println("URL is invalid");
}
0
的URI
類應該能夠爲你做這個給定的。具體而言,使用
URI(String scheme, String userInfo, String host,
int port, String path, String query, String fragment)
或
URI(String scheme, String authority, String path, String query,
String fragment)
創建URI
對象,其中,你提供的組件不被編碼。然後使用URI.toString()
或URI.toASCIIString()
生成正確編碼的URL。
編碼器應逃脫字符 '+'。我遇到的所有方法都對它進行了編碼。
將'+'編碼爲%2B%是正確的行爲。 URL/URI規範不支持轉義。無論您如何嘗試逃避它,URL中任何未編碼的「+」都將解碼爲空格字符。規格說明就是這樣。
+0
那麼,我無法在地址欄中顯示'+'嗎? –
+0
這取決於地址欄的實現;即它是否自動解碼URL以顯示它。 –
相關問題
- 1. 在Python中對unicode特殊字符(符號)進行編碼?
- 2. 特殊字符進行編碼在URL傳遞和JavaScript的
- 3. URL編碼和解碼特殊字符在Java中
- 4. 如何在jQuery中對特殊字符(>,<,%)進行編碼
- 5. 在Excel中對Base64進行特殊字符編碼VBA
- 6. 編碼特殊字符在Java中
- 7. 保持文本相同,同時保留特殊字符
- 8. Java代碼以保留任意輸入中的特殊字符
- 9. 對JSON中的特殊字符進行編碼(äöüß)
- 10. JavaScript - 使用特殊字符對對象進行編碼
- 11. 特殊/保留字符不會正確編碼
- 12. Docusignapi Invalid_Request_Body XML如何對特殊字符進行編碼
- 13. 使用特殊拉丁字符對XML文件進行編碼
- 14. 如何使用特殊字符「百分比」對URL進行編碼?
- 15. 相同特殊字符的編碼
- 16. 運行./mysqldump時如何保留特殊字符?
- 17. 編碼特殊字符
- 18. fineuploader - 編碼特殊字符
- 19. xslt編碼特殊字符
- 20. xml編碼特殊字符
- 21. Python:編碼特殊字符
- 22. 編碼特殊字符
- 23. 特殊字符編碼
- 24. JSON編碼 - 特殊字符
- 25. 在xml中編碼特殊字符
- 26. 在mySQL中編碼特殊字符
- 27. 在javascript/python中編碼特殊字符
- 28. 在JSON響應中對HTML特殊字符進行編碼的安全優勢
- 29. 保留特殊字符,如é
- 30. 有時fputs()或fwrite()會對html特殊字符進行編碼嗎?
它會逃脫「+」字符嗎? –