2009-07-06 82 views
4

我有一个基于UIWebView的iPhone应用程序,它从SQLite数据库中读取HTML。用户可以保存新的信息,通过接受回车的UITextView输入。如何在UIWebView中正确显示这些回车符(换行符)?我一直在使用这样的尝试:如何在iPhone的UIWebView中正确保存/显示换行符?

NSString *HTMLData = [mySQLiteDataObject text]; 
HTMLData = [HTMLData stringByReplacingOccurrencesOfString:@"\\n" 
    withString:@"<br>"]; 
[webView loadHTMLString:HTMLData baseURL:nil]; 

但它看起来并不像文本被认为具有换行:文本显示在web视图一脉相承。当我在控制台中打印出文本时,它会完整地显示换行符。

我试过在上面的示例代码中使用\ n,\ r和\ r \ n,但没有成功。我是否错误地保存了用户的文本,或者在显示器端做了错误的事情?

回答

2

我可以在搜索字符串中看到两个反斜杠:您必须替换"\n"而不是"\\n"才能使其正常工作。

但是,你在将它加载到UIWebView之前你需要really want to sanitize your input。至少你必须掩饰<,>,&,和“。

+0

是的,额外的反斜杠是罪魁祸首,我可以发誓,我看到在其他地方建议双反斜杠。这个一般的概念性解释: http://experimentgarden.blogspot.com/2009/07/how-to-stop-hacker-dont-trust-user.html 我最终编写了一个扩展NSString的基本sanitizeForDisplay方法。 – bruce1337 2009-08-02 21:42:28

0

如果我没有记错的话,当你用HTML标签休息更换"\\n"它应该是这样的:

HTMLData = [HTMLData stringByReplacingOccurrencesOfString:@"\\n" 
    withString:@"<br />"]; 

看来你缺少break语句斜杠。

相关问题