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
end

参数是:

output = output.txt
msgid =  "我们可以克服任何事情!"

我希望在文件中输出 msgid "\"我们可以克服任何事情!\""

我不想要 msgid = "我们可以克服任何事情!"

我应该如何解决这个问题?

点赞
用户734069
用户734069

如果你的目的是在 Lua 的转义规则下将字符串转义,那么你应该使用 string.format 的特殊 %q 格式化代码:

file:write(string.format("msgid "%q"", msgid))
2015-12-10 18:36:01
用户3979429
用户3979429

试试这个…

file:write('msgid "\\"' .. msgid .. '"\\"')

我这里使用 \ 来转义另一个 \。我们不能直接放置它,因为在 Lua 中它是转义字符。

2015-12-10 19:44:54