Lua中文本中的转义字符

在我的 SQlite3 数据库中,我有以下的 VARCHAR 数据:

data = 'Kim okurdu kim yazardı \n Bu düğümü kim çözerdi \n Koyun kurt ile gezerdi \n Fikir başka başk\'olmasa'

我尝试用以下代码显示这段文本:

local myText = display.newEmbossedText(data, globals.W/2,globals.H/2,300,300, native.systemFont, 16, { 1, 1, 1 } )

然而,转义字符未被识别。我该怎么解决这个问题呢?

点赞
用户1463542
用户1463542

我通过以下代码解决了我的问题,感谢来自 Corona 社区的 Lerg:

data:gsub([[\n]], '\n')
2014-02-08 16:40:00
用户4040253
用户4040253

更清晰的方法是用双反斜杠来转义反斜杠。例如:data:gsub("\\n", "\n") 。否则,可以使用 load/loadstring 来解析任何表达式。

例如:

-- 假设在有缓冲区的输入中读取字符串
myString = io.read()
-- 将字符串作为函数加载并调用它
myString = loadstring("return " .. myString)()
print(myString)

然而,第二种方法可能非常不安全,所以请谨慎使用。

2015-07-20 16:36:49