【问题标题】:What type of Charset URL encoding should this use?这应该使用什么类型的字符集 URL 编码?
【发布时间】:2013-01-29 08:01:34
【问题描述】:

我有一个 rest api,当我在浏览器中输入 URL 时,部分 URL 如下所示:

...where+%7B%0D%0A%3Fs+<http%3A%2F%2F...

实际上代表

...where { ?s <http://...

现在,当我必须通过我的 JAVA 代码调用相同的 URl 时,我知道我使用 URLEncoder 对 URL 进行编码。当我使用“UTF-8”格式时,URL 中的“

是否有任何编码方式可以保留“”,而 URL 的其他部分(例如空格和其他部分)被正确编码。

【问题讨论】:

  • 我怀疑“%3C还是按字面发送并不重要。
  • 是的,虽然我已经给出了答案,但我也有同感。

标签: java http url


【解决方案1】:

如果服务器没有正确处理转义序列,那么它需要得到修复。

【讨论】:

  • 这些字符应该被编码并且不被认为是 url 安全字符:en.wikipedia.org/wiki/Percent-encoding。任何不对这些进行编码的 urlencoder 实现都会被破坏。浏览器倾向于对您在 url 栏中输入的内容进行编码,而且大多数情况下它实际上并没有破坏内容。
【解决方案2】:

你可以的

URLEncoder.encode(urlString).replace("%3C", "<")

【讨论】:

    【解决方案3】:
    URLEncoder.encode(url, "UTF-8").replaceAll("%3C", "<").replaceAll("%3E", ">");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      • 2022-07-07
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多