我在使用数据库中的段落显示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中编辑数据的方式有关。
答案 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"})