我想取消"Sch%C3%B6ne"的转义。我在线上找到了这个unescape函数,该函数在很多情况下都可以使用,但由于这是2个字符,因此无法正常运行,我在http://www.lua.org/cgi-bin/demo上测试了以下代码

teststring = "Sch%C3%B6ne"

function unescape (str)
        str = string.gsub (str, "+", " ")
        str = string.gsub (str, "%%(%x%x)", function(h) return string.char(tonumber(h,16)) end)
        str = string.gsub (str, "\r\n", "\n")
        return str
end

print(unescape(teststring))

它打印Schöne,但我想要Schöne。有人可以帮助我吗?

最佳答案

该方法工作正常,在此UTF8示例中,在线Lua解释器未显示正确的结果。

您可以在另一个解释器(例如this one)下对其进行测试。

08-05 18:44