【问题标题】:How do you use gsub to remove ¬ character?您如何使用 gsub 删除 ¬ 字符?
【发布时间】:2013-09-20 09:45:09
【问题描述】:

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

有没有办法去掉?我试过这个:

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

【问题讨论】:

  • 似乎对我有用:codepad.org/HDXkDkwm
  • 它也适用于我,使用 Lua:demo 进行测试:
  • 我刚刚检查过,如果我打印 gsubbed 字符串,它看起来很好,但是如果我尝试在 Corona 中使用 system.openURL 它仍然有 ¬ 字符。一定是电晕问题,所以我会在他们的论坛上问。有谁知道 ¬ 字符叫什么?
  • @TheBestBigAl 你能粘贴关于这个 URL 的整个代码吗?这可能只是一个小的变量分数问题。
  • 用代码块编辑。

标签: string url encoding lua gsub


【解决方案1】:

可能是编码不匹配。

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 中称为 "not sign" 或也称为 “斜线”(Unicode 代码点 U+00AC)。对应的 HTML 实体是 ¬¬。它在数学中通常用作 “逻辑非” 运算符(它相当于 C ! 运算符或 Lua not 运算符的数学家)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多