URL转码

URL转码不管是以何种方式传递 url 时 如果要传递的 url 中包含特殊字符 如想要传递一个 但是这个 会被 url 会被编码成空格 想要传递 amp 被 url 处理成分隔符 尤其是当传递的 url 是经过 Base64 加密或者 RSA 加密后的 存在特殊字符时 这里的特殊字符一旦被 url 处理 就不是原先你加密的结果了 url 特殊符号及对应的编码符号 url 中的含义编码 URL 中 号表示空格

不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符。

尤其是当传递的url是经过Base64加密或者RSA加密后的,存在特殊字符时,这里的特殊字符一旦被url处理,就不是原先你加密的结果了。

url特殊符号及对应的编码
符号 url中的含义 编码
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL中指定的参数间的分隔符 %26
= URL中指定参数的值 %3D
URLEncode和URLDecode

接受参数案例

/ * Http 协议特殊字符处理 * 1.什么是特殊字符处理(rpc远程通讯 实现加密 + ?)正好和 http 特殊字符相同,导致会转成空格 * @author xiaoming * @Date 2019/10/11 */ @RestController public class IndexController { / * http://localhost:8080/indexPage?userName=1+1 * 结果:1 1 * 传入加号会变成空格 * 如何解决:对URL转码 例如:用%2B代替+ * * @param userName * @return */ @RequestMapping("/indexPage") public String indexPage(String userName){ System.out.println(userName); return userName; } } 
Java代码处理转码

URLEncoder.encode和decode

String encode = URLEncoder.encode("1+1", "UTF-8"); String decode = URLDecoder.decode(encode, "UTF-8"); System.out.println("encode:" + encode + ",decode:" + decode); 

Http接口参数编码处理

String url = "http://127.0.0.1:8080/indexPage?"; // 参数转码 String strParam = "name=" + URLEncoder.encode("1+1", "utf-8"); String newUrl = url + strParam; String result = HttpClientUtils.httpGet(newUrl); System.out.println("result:" + result); 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199555.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 下午12:44
下一篇 2026年3月20日 下午12:44


相关推荐

  • 产品经理必会知识:万字长文 | 史上最全的付费会员体系分析

    产品经理必会知识:万字长文 | 史上最全的付费会员体系分析1如何理解付费会员体系?老生常谈的AARRR模型中,会员体系在活跃、留存、收入端是最常见的运营手段,它有两种类型: 付费会员体系:通过付费,购买高价值、差异化的权益。 例:88VIP、京东PLUS、腾讯视频VIP、知乎盐选会员。 成长会员体系:通过特定用户行为带来的积累,获得等级成长及差异化权益(一般为低价值)。 例:大众点评会员、滴滴橙长会员、支付宝会员。 会员体系的核心目标,是拉升「付费用户比例」、「用户生命周期」、「ARPU」;在用户价值层面体现为…

    2022年6月16日
    53
  • java堆栈内存

    java堆栈内存堆栈一 堆栈 java 中我们把 java 内存分为两种一种是栈内存 一种则是堆内存一 堆栈在计算机领域 堆栈设计一个不容忽视的概念 堆栈是一种数据结构 堆栈是一种数据结构 堆栈都是一种书库项按顺序排列的数据结构 只能在一端对数据项进行插入和删除 在单片机应用中 堆栈是个特殊的存储区 主要功能是暂时存放数据和地址 通常用来保护断点和现场 1 java 内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配 当在一段代码块定义一个变量时 Java 在栈中为这个变量分配内存空间

    2026年3月17日
    3
  • Thinkphp5.0+Vue2.0前后端分离框架Vuethink

    Thinkphp5.0+Vue2.0前后端分离框架Vuethink

    2021年10月11日
    173
  • navicat 15 for激活码[在线序列号]

    navicat 15 for激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    73
  • Hadoop生态系统图

    Hadoop生态系统图当下Hadoop已经成长为一个庞大的生态体系,只要和海量数据相关的领域,都有Hadoop的身影。下图是一个Hadoop生态系统的图谱,详细列举了在Hadoop这个生态系统中出现的各种数据工具。这一切,都起源自Web数据爆炸时代的来临。Hadoop生态系统的功能以及对应的开源工具说明如下。MapReduce

    2022年5月19日
    52
  • git的使用步骤_git版本控制

    git的使用步骤_git版本控制git基本使用步骤git工作区、暂存区和本地仓库理解:https://blog.csdn.net/qq_39588003/article/details/106991551目录git基本使用步骤一、安装git二、配置git三、初始化本地仓库四、将当前目录的文件纳入版本控制五、查看仓库当前文件提交状态一、安装git在网上下载git,并安装安装完成后,如下图:右键鼠标会有GitGUIHere和GitBashHere二、配置git在git.

    2026年2月14日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号