URLEncode

article/2025/10/7 1:00:36

目录

  • 转换规则
  • 那哪些字符是需要转化的呢?
  • 和编码无关
    • 结论
  • 参考

转换规则

urlencode:返回字符串,此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+
按照每个字符对应的字符编码,不是符合我们范围的,统统的转化为%的形式也就是了。自然也是16进制的形式。

那哪些字符是需要转化的呢?

  1. ASCII 的控制字符

这些字符都是不可打印的,自然需要进行转化。

  1. 一些非ASCII字符

这些字符自然是非法的字符范围。转化也是理所当然的了。

  1. 一些保留字符

很明显最常见的就是“&”了,这个如果出现在url中了,那你认为是url中的一个字符呢,还是特殊的参数分割用的呢?

  1. 就是一些不安全的字符了。
    例如:空格。为了防止引起歧义,需要被转化为“+”。

和编码无关

通过urlencode的转化规则和目的,我们也很容易的看出,urleocode是基于字符编码的。同样的一个汉字,不同的编码类型,肯定对应不同的urleocode的串。gbk编码的有gbk的encode结果。

apache等服务器,接受到字符串后,可以进行decode,但是还是无法解决编码的问题。编码问题,还是需要靠约定或者字符编码的判断解决。

因此,urleocode只是为了url中一些非ascii字符,可以正确无误的被传输,至于使用哪种编码,就不是eocode所关心和解决的问题了。

编码问题,不是urlencode所要解决的。

比如你
image.png


image.png

结论

对于要转换的字符,是先根据编码格式转成对应的字节,然后转成16进制

参考

  1. https://blog.csdn.net/u013833031/article/details/78828539

http://chatgpt.dhexx.cn/article/h0XvcHyH.shtml

相关文章

在线URLEncode编码,URLDecode解码工具

在线URLEncode编码,URLDecode解码工具 在线URLEncode编码,URLDecode解码工具 本工具支持对URL进行编码和解码,纯客户端计算,数据不会上传到服务器中,请放心使用。 https://tooltt.com/urlencode/

URL编码(encode)和URL解码(decode)

由于URL中支持的字符是有限的,所以一些特殊字符(比如说:&、空格、加号等)和中文需要经过URL编码。 URL编码的大体过程: 1、将字符经过一定的字符集(通常是UTF-8)编码 比如:&a…

URLDecoder和URLEncoder的使用总结

其实,这两个类的使用并不复杂,URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencoded MIME字符串之间的转换,一般的人会以为后一个字符串比较专业,以为有什么高深的知识,其实不然&a…

详解HTTP GET请求

实例1:NodeMcu通过TCP实现HTTP GET请求(无请求主体) srv net.createConnection(net.TCP, 0) srv:on("receive", function(sck, c) print(c) end) srv:connect(80,"fanyi.youdao.com") srv:on("connection", …

我是如何实现HttpGet请求传body参数的!

前言 最近调用公司项目一个接口时,发现该接口是一个Get请求,入参在Body 中(json格式)。场景如下:A服务需发送http请求调用B服务的接口(该接口为Get方式,入参是一个json字符串在body中传递&…

使用CloseableHttpClient 模拟发送HttpGet和HttpPost请求

项目中经常会用到模拟Http请求,而jdk 下的 rt.jar核心库中也有 java.net提供了这方面的功能,但是总体而言,功能还是缺少灵活性和全面性,HttpClient的出现就是弥补了其缺失的功能。HttpClient不是浏览器客户端,而是一个…

python实现http get请求

接口请求方式为get请求,如下图抓包查看 Python实现脚本请求接口并以中文打印接口返回的数据 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电…

我是如何实现HttpGet请求传body参数的?

点击关注公众号,利用碎片时间学习 前言 最近调用公司项目一个接口时,发现该接口是一个Get请求,入参在Body 中(json格式)。 场景如下:A服务需发送http请求调用B服务的接口(该接口为Get方式&#…

HTTP get方式传json

文章目录 一、背景?二、尝试的过程1.postman(成功)2.hutool(失败)3.AsyncHttpClient(成功) 总结 一、背景? 最近项目中有个三方接口,需要使用get请求传递json, 这个让人有点懵,一般来说get参数都会直接拼接在url后, 复杂的参数都使用post方式传递, 尝试…

HTTP GET请求的最大长度?

HTTP GET请求的最大长度是多少? 是否定义了一个响应错误,如果服务器收到超过此长度的GET请求,服务器可以/应该返回该错误? 更新:如标记中所示,这是在Web服务API的上下文中,尽管也很有趣地看到了…

Arduino ESP32 获取网络数据(HTTP GET方式)

Arduino ESP32 获取网络数据(HTTP GET方式) 相关篇《Arduino ESP32 获取网络数据(HTTP POST方式)》《Arduino ESP32 获取网络数据(HTTP PATCH方式)》《Arduino ESP32 获取网络数据(HTTP PUT方式)》 本实例介绍,ESP32通过联网,访问指定服务器网站&#xf…

HTTP - get/post请求详解与本质区别总结

前言 在客户机和服务器之间进行请求、响应时,两种最常被用到的方法是:get和post。 get:从指定的资源请求数据(从服务器获取数据) post:向指定的资源提交要被处理的数据(向服务器传送数据&#…

transferTo源码分析

transferTo源码分析 如图

netty(五) 【 transferTo 零拷贝实例】

前言: 在linux 中 transferTo 方法就可以完成传输,在 windows 中依次调用transferTo最多能传8M文件,需要分段传文件,而且要注意传输起点位置 模拟服务端实验源码: package com.dev.nio.TRANSFERTO;import java.io.IO…

MultipartFile的transferTo方法的坑

前言 最近用SpringBoot写文件上传功能,使用参数绑定之后确实是非常的方便了。但是,项目部署就出现了问题,搞得我一脸懵逼。后来,才发现是因为我使用了相对路径导致的,这个绝对是一个坑人的地方,不过也说明需…

通过零拷贝进行有效的数据传输(java、c)

目录 日期转移:传统方法 数据传输:零复制方法 构建文件服务器 性能比较 概要 相关阅读 许多Web应用程序提供大量的静态内容,这相当于从磁盘上读取数据并将完全相同的数据写回响应套接字。该活动似乎需要较少的CPU活动,但效率…

NIO中的零拷贝--transferTo

1、我们说零拷贝,是从操作系统的角度来说的。因为内核缓冲区之间,没有数据是 重复的(只有 kernel buffer 有一份数据)。 2、零拷贝不仅仅带来更少的数据复制,还能带来其他的性能优势,例如更少的上下 文切…

使用transferTo上传文件容器为jetty的问题

报错 springboot 内嵌的 tomcat替换jetty 9.4.44 后出现的问题。 jetty容器使用transferTo 上传问题会提示找不到文件。 ava.io.FileNotFoundException: C:\Users\XXX\AppData\Local\Temp\D:\workspace\1675246694267.xlsx(文件名、目录名或卷标语法不正确。) 跟进代码发现 是下…

Java很简单的文件上传(transferTo方式)

采用file.Transto 来保存上传的文件,代码简单,速度快. package com.springbootemaildemo.controller;import com.springbootemaildemo.entity.ResponseEntity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import…

动态规划题目2

动态规划 跳跃游戏 VI (滑动窗口动态规划)丑数统计字典序元音字符串的数目最长重复子串分隔数组以得到最大和最低票价回文子串最长重复子数组最长回文子序列摆动序列旋转函数统计各位数字都不同的数字个数 (动规排列组合)最大整除子集猜数字大小 II超级丑数预测赢家栅栏涂色丑数…