You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求识别类URL编码的字符串编码格式(附输入输出样本)

拆解这个类URL编码的自定义变体

咱们先把输入输出拆开来对比,一眼就能看出它和标准application/x-www-form-urlencoded的差异:

输入字符串:ABCDabcd_1234_!_@_#_$_%_^_&_*_(_)_+
编码后结果:ABCDabcd_1234_!_@040_@023_$_@025_^_@026_*_@028_@029_@02b

1. 核心编码规则分析

对比每个特殊字符的处理方式,能总结出这套编码的核心逻辑:

  • 基础保留字符:大小写字母、数字、_、!、$、^、*这些字符完全保留,和标准URL编码的保留规则基本一致。
  • 转义逻辑差异:
    标准URL编码用%作为转义前缀,后面跟大写的两位十六进制ASCII码;而这套编码用@作为前缀,后面跟小写的三位十六进制ASCII码(不足三位的话前面补0)。
    举几个对应例子:
    • @的ASCII是64 → 十六进制40 → 补0成040 → 转义为@040
    • #的ASCII是35 → 十六进制23 → 补0成023 → 转义为@023
    • +的ASCII是43 → 十六进制2B → 小写后是2b → 补0成02b → 转义为@02b
  • 额外转义字符:标准URL编码中@属于保留字符不需要转义,但这套编码里@也被纳入了转义范围。

2. 编码类型定义

这是一套基于application/x-www-form-urlencoded的自定义变体编码,主要修改了转义前缀和十六进制的格式(小写+补0到三位),同时扩展了需要转义的字符范围(增加了@)。

3. 复现编码的步骤

要手动或代码复现这个编码,只需要按以下流程处理每个字符:

  • 遍历输入的每个字符:
    1. 如果字符属于A-Z、a-z、0-9、_、!、$、^、*,直接保留。
    2. 其他字符:
      • 获取该字符的ASCII十进制值。
      • 将十进制值转换为小写十六进制字符串,前面补0直到长度为3位。
      • 用@拼接这个十六进制字符串,替换原字符。

按这个步骤处理你的输入字符串,就能完全得到你给出的输出结果。

内容的提问来源于stack exchange,提问作者mdj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:56:28