关于java.net.URLEncoder.encode()将空格转成+问题 2025977编辑
Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注
资深码农+深耕理财=财富自由
欢迎关注

关于java.net.URLEncoder.encode()将空格转成+问题
Created by Marydon on 2024-03-14 10:45
1.情景展示
如上图所示,当我们使用jdk自带的类对数据进行URL编码时,空格会被转成+。
这其实是不对的,我们知道:
空格对应url编码是:%20,所以,jdk自带的URLEncoder将空格转成+是不对的。
如何解决?
2.解决方案
既然jdk自带的URLEncoder有问题,我们就有两种解决办法。
一种是仍然使用它,然后将编码结果中的+替换成:%20即可。
另一种就是使用第三方jar包中的工具类来完成编码。
我们这里只说第一种。
第一步:测试"+"能否正常编码。
我们可以看到:
+被编码成了:%2B,理应如此。
第二步:测试"+"和"%20"能否解码为空格。
我们可以看到:
"+"和"%20"都被解码成了空格。
有了上两步的测试,我们知道将+替换成%20是可行的。
对编码结果调用如下方法,将编码结果中的"+"全部替换成"%20"。
String.replaceAll("\\+", "%20"));
URLEncoder.encode("Marydon 博客园+", StandardCharsets.UTF_8).replaceAll("\\+", "%20");
3.javascript
URL编码encodeURI()
我们可以看到:
空格被编码成了%20,但是+并没有进行编码。
URL解码
%20被解码成了空格,+保持不变。
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/18072349
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2022-03-14 oracle 按指定字符拆分字符串(split)
2022-03-14 oracle 统计某个字符出现的次数