从数据库中检索文本时显示段落的问题

时间:2011-08-19 15:34:41

标签: sqlite lua corona

我在使用数据库中的段落显示chucks of text时遇到问题。

例如,如果我传入一个字符串,如:

local lotsOfText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n\nNunc euismod justo sapien, at sollicitudin lacus. Quisque vestibulum commodo felis id posuere."

然后\ n \ n在文本中创建一个段落,这是我所期望的。

但是,如果我从数据库中检索与上面完全相同的字符串,例如:

local lotsOfText = row.Info

然后\ n \ n显示在屏幕上,而不是段落。

感谢任何帮助!


感谢大家的想法和建议。基于BMitch所说的,我尝试了一种不同的方法,并认为这实际上是我的数据库的问题,而不是Lua或字符串本身。

如果我在代码中创建一个DB表并插入字符串,我可以正确地检索它。我知道这是因为我使用的数据类型,或者可能与我在Lita中编辑数据的方式有关。

2 个答案:

答案 0 :(得分:0)

当我在Python中编写一个简短的构建脚本时,我几乎遇到了完全相同的问题。问题是Python正在将从进程调用返回的字符串结果视为二进制。我想Lua也在做同样的事情。虽然我从来没有遇到过这种情况,但我无法通过谷歌找到直接的解决方案,但其他人提到了lpack库以便打包&在this answer中解压缩二进制数据。此外,string.dump和loadstring函数可能会指向解决方案,以防lpack不能满足您的需求,但我认为关键是找到现有的方法(或编写自己的)将“二进制”数据解释为字符。

答案 1 :(得分:0)

转义仅在单引号或双引号字符串文字内处理。

问题是您的数据库存储'\ n'而不是实际存储分段符。

如果您无法修复数据库,则可以使用智能gsub进行处理:

mystring = string.gsub(mystring,[[\(%a)]],{n="\n",r="\r",t="\t"})