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

在GeneXus Procedure(Web Service)中解码URL参数

在GeneXus Procedure中解码URL编码的Body参数

核心解决方案

GeneXus 提供了与 URLEncode() 对应的反向函数 URLDecode(),可以直接对URL编码的字符串进行解码,包括特殊字符、百分号编码和emoji这类Unicode字符都能正确处理。

步骤1:从输入字符串提取Body参数

先从完整的查询字符串里分离出Body对应的编码值:

// 假设完整输入字符串存在&InputQueryString变量中
&StartPos = Pos(&InputQueryString, 'Body=') + 5 // 定位Body参数值的起始位置
&EndPos = Pos(&InputQueryString, '&', &StartPos) // 定位Body参数值的结束位置(下一个&的位置)

// 处理Body是最后一个参数的情况(没有后续&)
If &EndPos = 0
    &EndPos = Len(&InputQueryString) + 1
EndIf

// 提取编码后的Body内容
&BodyEncoded = SubStr(&InputQueryString, &StartPos, &EndPos - &StartPos)

步骤2:解码Body参数

用URLDecode()函数把编码字符串转成明文:

&BodyDecoded = URLDecode(&BodyEncoded)

执行后,示例里的编码Body Este+es+un+texto+lago+que+incluye+%3A+%25+.+%F0%9F%99%82+%28emoji%29 会被解码为:Este es un texto lago que incluye : % . 🐂 (emoji)

注意事项

  • 确认使用的GeneXus版本支持URLDecode()(GeneXus X及后续版本均支持,旧版本可查阅对应官方文档)
  • URLDecode()默认用UTF-8编码解析,能正确处理emoji等Unicode字符
  • 如果Web Service基于REST架构,也可以通过GeneXus的HttpRequest对象直接获取已解析的参数,无需手动拆分查询字符串

内容的提问来源于stack exchange,提问作者Sergio Sepúlveda Montealegre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:15:36