2010-12-17 104 views
1

我正在開發Android 2.2應用程序。Android上的特殊字符 n和

我使用SQlite3來存儲一些將在TextView中顯示的文本。

我想添加一些新的行和回車,但我不知道我是否可以在SQlite3中使用'\ n'和'\ r'。

有什麼建議嗎?

+1

我根本不知道SQlite,但通常數據庫存儲實際字符,並且在編譯時使用字符串文字時會發生'\ n'或'\ r'的轉換。所以使用什麼取決於你的語言和編譯器,而不是你的數據存儲。 – Kendrick 2010-12-17 16:58:10

+0

@Kendrick:所以,我可以使用它,不是嗎? – VansFannel 2010-12-17 17:04:13

回答

2

如果您正確使用SQLite API並使用綁定參數而不是動態生成SQL,則可以毫無問題地使用這些字符。

無論如何,數據庫可能只是將字符編碼爲字節塊,所以當使用大多數字符集解碼時,在某些情況下,00001010意味着「新行」是完全不相關的。它就像其他所有內容一樣進入文本列。

現在,如果您沒有使用預處理語句,而是以編程方式編程SQL,那麼您可能會遇到問題,具體取決於SQLite如何處理字符串文本中的嵌入換行符(它可能會或可能不會處理此問題)。但是這不應該是個問題,因爲無論如何你都可以解決這個問題(即使你需要來動態生成你的語句,只需在?佔位符中生成一個語句,準備它,然後綁定你的變量)。

+0

+1聲明中綁定參數是要走的路。這應該爲你處理更低層次的細節(比如這個)。 – 2010-12-17 17:16:37