Lua:转义字符串和写入文件
我创建函数writefile:Lua:转义字符串和写入文件,lua,Lua,我创建函数writefile: function writefile(output,msgid) file = io.open(output, "a") if (file) then file:write('msgid "' .. msgid .. '"') file:close() else print("can't open file") end
function writefile(output,msgid)
file = io.open(output, "a")
if (file) then
file:write('msgid "' .. msgid .. '"')
file:close()
else
print("can't open file")
end
end
参数为:
output = output.txt
msgid = "We can overcome anything!"
我想输出的文件是msgid“\”我们可以克服任何困难\“”
我不想要msgid=”“我们可以克服任何事情!“”
我怎样才能解决这个问题 如果您的目的是根据Lua的转义规则转义字符串,那么您应该使用: 试试这个
file:write('msgid "\\"' .. msgid .. '"\\"')
我在这里做的是用\来逃避另一个。我们不能直接把它放在那里,因为在Lua中它是一个转义字符。如果你需要在值中转义引号(顺便说一句,你在
msgid的值中没有任何引号),那么你就可以使用它了。好的,这是可行的。谢天谢地,@EtanReisner:不要发表评论作为回答。@EtanReisner:不,这是回答;只是不太好。留下答案评论比留下低质量的答案更糟糕。通过这样做,您可以解决用户的问题,但将问题留在“未回答”队列中,即使它有答案。这是不好的,尤其是对于低可见性标签。@NicolBolas关于未回答的部分,你是对的。我仍然不喜欢标记VLQ或提供VLQ答案的想法,但我肯定会在将来更仔细地考虑VLQ答案评论。谢谢。msgid
让我想到了gettext,所以我不确定lua引用规则在这里是否完全正确(尽管它们可能非常接近,但我不确定除了原始OP中的双引号外,还有什么需要转义)。您可以始终转义转义字符。所以Lua字符串中的“\\”变成了一个``字符。@NicolBolas是一个``字符?这应该是一个\,但似乎你不能将它们放入代码格式中。@NicolBolas哦,真奇怪。另外,谢谢,我没有意识到\\工作了。@Nicolas使用了3个背景符号:\
file:write('msgid "\\"' .. msgid .. '"\\"')