0

我尝试使用从 URLgsub中删除¬字符,因为它不应该存在,但已由客户端的服务器添加。

有没有办法删除它?我试过这个:

s = string.gsub(s, "¬", "")

但这不起作用。有任何想法吗?

编辑:

这是整个代码块:

if link then
    function urlencode(s)
        s = string.gsub(s, "([{}&=+%c])", 
            function(c)
                return string.format("%%%02X", string.byte(c))
            end
        )
        s = string.gsub(s, " ", "+")
        s = string.gsub(s, "¬", "")
        return s
    end

    print(urlencode(link))
    local url = urlencode(link)
    system.openURL(url)
end
4

1 回答 1

3

也许它可能是编码不匹配。

UTF-8 中的那个¬字符被编码为\xC2\xAC\194\172十进制)。此外,Lua 字符串库不支持代码点,它只处理字节,因此"¬"Lua 字符串文字可能在存储脚本的编码中以不同的方式表示(在我的 Windows 机器上,代码页为 1252,它很简单\xAC) . 因此,当向gsub函数提供 URL 时,表示文字的字节序列与 URL 中的 不匹配\xAC\xC2

试试看是否换行:

s = string.gsub(s, "¬", "")

到:

s = string.gsub(s, "\194\172", "")

有什么不同。

注意: ¬ 符号在Unicode中称为“非符号”“斜线”(Unicode 代码点 U+00AC)。对应的 HTML 实体是¬¬。它在数学中通常用作“逻辑非”运算符(它相当于 C!运算符或 Luanot运算符的数学家)。

于 2013-09-21T11:32:51.310 回答