有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我是这方面的新手,找不到确切的答案。我在URL中有特殊字符,例如

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

它引起了一系列问题。(如果有人能建议如何处理这种情况,那将是额外的帮助)。我的主要问题是,如何在JAVA中表示以下URL类型的字符串文字

"x###y"

我了解到我们需要把它的hex代码值(使用%)放进去。有人能提出解决这个URL问题的确切答案吗


共 (4) 个答案

  1. # 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

  2. # 3 楼答案

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

    有关更多详细信息,请参阅以下链接

    HTTP URL Address Encoding in Java

  3. # 4 楼答案

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

    另请参见this question,了解只对url中需要的部分进行编码的方法: