string - 如何转义多字节字符 utf8

标签 string unicode utf-8 lua

我想取消转义 "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。谁能帮帮我?

最佳答案

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

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

关于string - 如何转义多字节字符 utf8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530403/

相关文章:

encoding - 如何定义/声明土耳其语特殊字符(非 ascii)的 utf-8 代码点以将它们用作标准 utf-8 编码?

c - 如何检查字符串中某个位置的数字并在c中提取其值?

string - 将 int64(来自 UnixNano)转换为位置时间字符串

url - Golang 如何将 punycode 转换为 unicode?

php - 如何使用 php 防止 zalgo 文本

python - 将波斯语字符串( UTF-8 )从 laravel API 传递到 python 文件

python - 如何在字符串列表中找到模式,将其从字符串中删除,并将其作为列表中的下一个元素插入?

c++ - 想要分配 std::string 但编译器认为是 bool

python - 读取带有希腊文件名的文件

Python + PostgreSQL + 奇怪的ascii = UTF8编码错误