我如何unescape多字节字符utf8

时间:2014-02-03 14:52:06

标签: string unicode utf-8 lua

我想unescape "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。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

该方法运行正常,这是在线的Lua解释器,在这个UTF8示例中没有显示正确的结果。

您可以在另一个解释器下测试它,例如this one