如何将URL编码为“可浏览”?

如何将URL编码为“可浏览”?,第1张

如何将URL编码为“可浏览”?

这类url的问题在于它们是部分编码的,如果您尝试使用开箱即用的编码器,它将始终对整个字符串进行编码,因此我想您使用自定义编码器的方法是正确的。您的代码还可以,您只需要添加一些验证,例如,如果“
evil url”不随协议部分一起提供(即没有“ https://”),除非您非常确定,该怎么办?它永远不会发生。

我有一些空闲时间,所以我做了一个替代的自定义编码器,我遵循的策略是解析URL中不允许的字符并仅对那些字符进行编码,而不是尝试重新编码整个内容:

private static String enpreSemiEnpred(String semiEncondedUrl) {    final String ALLOWED_CHAR = "!*'();:@&=+$,/?#[]-_.~";    StringBuilder enpred = new StringBuilder();    for(char ch: semiEncondedUrl.toCharArray()) {        boolean shouldEnpre = ALLOWED_CHAR.indexOf(ch) == -1 && !Character.isLetterOrDigit(ch) || ch > 127;        if(shouldEnpre) { enpred.append(String.format("%%%02X", (int)ch));        } else { enpred.append(ch);        }    }    return enpred.toString();}

希望这可以帮助



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5094427.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存