如何表示特殊字符的字符串URL?

时间:2011-05-27 10:14:40

标签: java string url special-characters

我是新手,无法找到确切的答案。我在URL中有特殊字符,例如

"&", "#", "?" "<"

它会导致问题。 (如果有人可以建议如何处理这种情况,那么这将是一个额外的帮助)。我的主要问题是,如何在JAVA中表示以下类型的URL的字符串文字?

"x###y"

我了解到我们需要设置hex代码值(使用%)。有人可以建议确切的答案来解决这个URL问题吗?

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

java.net.URLEncoder.encode(YOUR_STRING, "UTF-8");

另请参阅this question,了解仅对您需要的网址部分进行编码的方法:

答案 2 :(得分:1)

答案取决于数据在URL中的位置。 URL的不同部分将有不同的编码规则。

确切的形式也可能取决于服务器期望的URI格式。

查询部分中的参数通常可以使用URLEncoder编码为application/x-www-form-urlencoded

String query = URLEncoder.encode("key1", "UTF-8")
             + "="
             + URLEncoder.encode("value1", "UTF-8")
             + "&"
             + URLEncoder.encode("key2", "UTF-8")
             + "="
             + URLEncoder.encode("value2", "UTF-8");

如果您需要在URI的其他部分(路径部分或片段部分)进行编码,请阅读this

答案 3 :(得分:0)

URLEncoder is not for encoding URLs it is there to encode form data

请参阅以下链接了解更多详情

HTTP URL Address Encoding in Java