java url 编码参数_用Java编码URL查询参数

不幸的是,URLEncoder.encode()无法产生有效的百分比编码(如http://tools.ietf.org/html/rfc3986#section-2.1中所指定)。

URLEncoder.encode()可以对所有内容进行正确编码,除了将空格编码为“ +”之外。我只能找到的所有Java URI编码器都只公开用于对查询,片段,路径部分等进行编码的公共方法-但不公开“原始”编码。不幸的是,由于允许片段和查询将空格编码为+,因此我们不想使用它们。路径已正确编码,但首先被“规范化”,因此我们也不能将其用于“通用”编码。

我能想到的最佳解决方案:

return URLEncoder.encode(raw, "UTF-8").replaceAll("\\+", "%20");

如果replaceAll()对您来说太慢,我想替代方法是滚动您自己的编码器...

编辑:我首先在这里有此代码不正确编码“?”,“&”,“ =”:

//don't use - doesn't properly encode "?", "&", "="

new URI(null, null, null, raw, null).toString().substring(1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值