【问题标题】:Uri encode everything, including unreserved charactersUri 对所有内容进行编码,包括未保留的字符
【发布时间】:2023-04-05 13:17:01
【问题描述】:

我需要匹配我服务器的 oauth 签名库,它会在签名之前对所有内容进行编码。

使用 Uri.encode 而不是 Urlencoder.encode(base, UTF-8) 对空格和 + 进行正确编码,但是我还需要对未保留字符 ("_-!.~'()*") 进行编码。

为他们编写自己的实用程序并不难,但如果不需要手动更改,那就太好了。是否已经有一个实用程序?

【问题讨论】:

  • 遗憾的是 url 编码器无法解决您的问题。我遇到了这个问题并使用了自定义实用程序。参考javapractices.com/topic/TopicAction.do?Id=96
  • 所以我很害怕。呃,好吧!谢谢。
  • 为什么要这样做?要解决其他组件中的错误?
  • 没关系,重读!

标签: java android encoding utf-8


【解决方案1】:

原来只有几个字符需要额外编码。对于大众:

public static String encode(String base){
    String encoded = Uri.encode(base);
    encoded = encoded.replace("(", "%28");
    encoded = encoded.replace(")", "%29");
    encoded = encoded.replace("!", "%21");
    encoded = encoded.replace("\'", "%27");
    encoded = encoded.replace("*", "%2A");

    return encoded;
}

【讨论】:

    猜你喜欢
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    相关资源
    最近更新 更多