关于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被解码成了空格,+保持不变。 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(977)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2022-03-14 oracle 按指定字符拆分字符串(split)
2022-03-14 oracle 统计某个字符出现的次数
点击右上角即可分享
微信分享提示
sorry,本博客所有代码禁止复制,原创代码需扫码支付方可获取!
关闭

1、先加好友再付费,点我加好友;

2、代码不能满足你的需求?加好友付费定制你的专属代码!

3、付费标准及方式,点我查看详情。