2011-08-19 68 views
0

我在顯示數據庫中段落的文本塊時出現問題。從數據庫中檢索文本時顯示段落的問題

例如,如果我在傳遞一個字符串,如:

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或字符串本身。

如果我在代碼中創建一個數據庫表並插入字符串,我可以讓它們正確地檢索它。我減少這是由於我使用的數據類型,或者可能與我在Lita中編輯數據有關。

+2

歡迎SO MattK。你應該顯示你的代碼,包括打印好的字符串,將該字符串插入數據庫的過程,檢索字符串的過程以及錯誤地打印字符串的過程。不要包含您的所有代碼,只包含重現問題所需的內容。 – BMitch

回答

0

當我在Python中編寫一個簡短的構建腳本時,我遇到了幾乎完全相同的問題。結果問題是,Python將進程調用返回的字符串結果視爲二進制文件。我想象Lua也在做同樣的事情。雖然我從來沒有親自遇到過這種情況,但我無法通過Google找到直接解決方案,但其他人提到了lpack庫,用於打包&解壓縮this answer中的二進制數據。此外,string.dump和loadstring函數可能爲指向你的解決方案,以防lpack不能做你想要的,但我認爲關鍵是找出一種現有的方法(或者寫你自己的方法)將「二進​​制」數據解釋爲字符。

0

轉義僅在單引號或雙引號字符串文字內處理。

問題是您的數據庫正在存儲'\ n'而不是實際存儲段落中斷。

如果您不能修復數據庫,你可以事後用智能GSUB對其進行處理:

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