我正在尝试将文本源转换为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±确实出现在输出中。但是,当我尝试使用str从读取excel文件传入时,它不会拾取该字符并仍然返回Â
字符。
答案 0 :(得分:1)
Lua字符串假定字符串为字节序列。您正在尝试使用utf8多字节字符。您正在尝试的代码应该工作,因为它只是替换一个字节序列。但是,Lua 5.3有utf8库来处理unicode字符
local str="±®ª"
for code in str:gmatch(utf8.charpattern) do
print("&#" .. utf8.codepoint(code) .. ";")
end
输出:
±
®
ª
查看Lua Reference Manual了解详情。