前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java的URLEncoder.encode("需要编码的参数","UTF-8")

Java的URLEncoder.encode("需要编码的参数","UTF-8")

原创
作者头像
用户8983410
修改2021-10-08 14:56:33
1.2K0
修改2021-10-08 14:56:33
举报

Java的URLEncoder.encode("需要编码的参数","UTF-8")

比较JS的encodeURIComponent函数和Java的URLEncoder.encode("需要编码的参数","UTF-8")函数: 对//中国/images/head_tripletown.png//!@#$%^&*()进行URL编码:

代码语言:javascript
复制
//JS的encodeURIComponent函数
javascript:encodeURIComponent("//中国/images/head_tripletown.png//!@#$%^&*()")
"%2F%2F%E4%B8%AD%E5%9B%BD%2Fimages%2Fhead_tripletown.png%2F%2F!%40%23%24%25%5E%26*()"

//Java的URLEncoder.encode("需要编码的参数","UTF-8")函数
URLEncoder.encode("//中国/images/head_tripletown.png//!@#$%^&*()","UTF-8")
%2f%2f%e4%b8%ad%e5%9b%bd%2fimages%2fhead_tripletown.png%2f%2f!%40%23%24%25%5e%26*()

可以看到一模一样,因此: 使用Javascript先对URL编码,或者将可以在后台编码的参数编码后再发送给前端使用。

3 为什么两次编码

首先看例子,原始请求:

代码语言:javascript
复制
http://localhost/admin/image/filePath//images/head_tripletown.png/200/200

其中,Controller中的映射文件:

代码语言:javascript
复制
@RequestMapping(path = "/admin/image/filePath/{filePath}/{width}/{height}")

对filePath参数一次编码后,发起URL请求: 请求为:http://localhost/admin/image/filePath/%2fimages%2fhead_tripletown.png/200/200 在拦截器加断点:

毫无反应。。。所以应该在拦截器工作前就对URL进行了解码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java的URLEncoder.encode("需要编码的参数","UTF-8")
  • 3 为什么两次编码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档