如何在Lua中对request_uri字符串进行urldecode

 mobiledu2502931473 发布于 2023-02-13 19:54

当我使用时,ngx.var.request_uri我将返回一个包含%20的字符串代替空格.是否有urldecode()函数或类似解码我的字符串?

2 个回答
  • 解码的URI可以在中找到ngx.var.uri.如果需要,它不包含查询字符串ngx.var.query_string.

    编辑:如果你不能使用这个,这是一个简单的方法来unescape Lua中的URL.

    local hex_to_char = function(x)
      return string.char(tonumber(x, 16))
    end
    
    local unescape = function(url)
      return url:gsub("%%(%x%x)", hex_to_char)
    end
    

    用法示例:

    local url = "/test/some%20string?foo=bar"
    print(unescape(url)) -- /test/some string?foo=bar
    

    但是您应该使用之前拆分查询字符串.

    2023-02-13 19:56 回答
  • 如果您使用的是nginx-lua-module,那么您可以使用下面的api.

    newstr = ngx.unescape_uri(str)
    

    你也可以看看 ngxescape_uri

    2023-02-13 19:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有