我尝试使用gsub
从网址中删除¬
字符,因为它不应该存在,但已由客户端的服务器添加。
有没有办法删除它?我试过这个:
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
答案 0 :(得分: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中称为"not sign",或者也称为“斜角划线”(Unicode代码点U + 00AC)。相应的HTML实体为¬
或¬
。它通常在数学中用作“逻辑非”运算符(它等同于C !
运算符或Lua not
运算符的数学家)。