带加减号的 GSub

我正在尝试将文本源转换成可读取的HTML页面。

我尝试的代码:

local newstr=string.gsub(str,"±", "±")
local newstr=string.gsub(str,"%±", "±")

然而,该字符显示为输出中的 Â

我似乎找不到任何其他关于如何处理此特定特殊字符的文档。如何处理读入的此字符,以便它会正确输出?

编辑:尝试建议后,我能够确定以下内容:

local function sanitizeheader(str)
    if not(str)then return "" end
    str2 = "Depth ±"
    local newstr=string.gsub(str2, string.char(177), "±")
    return newstr
end

在测试中,如果我使用 str2,± 会显示在输出中。但是,当我尝试使用从读取Excel文件传递的 str 时,它不会拾取该字符,并且仍然返回 Â 字符。

点赞
用户3572445
用户3572445

Lua字符串将字符串视为字节序列。您正在尝试使用UTF8多字节字符。您要尝试的代码应该可以工作,因为它只是替换字节序列。但是,Lua 5.3具有UTF8库来处理Unicode字符。

local str="±®ª"

for code in str:gmatch(utf8.charpattern) do
  print("&#" .. utf8.codepoint(code) .. ";")
end

输出:

±
®
ª

有关更多信息,请查看Lua参考手册

2018-03-29 07:25:09