2009-07-06 27 views
4

私はSQLiteデータベースからHTMLを読み込むUIWebViewベースのiPhoneアプリケーションを持っています。ユーザーは、キャリッジリターンを受け入れるUITextViewを介して入力された新しい情報を保存することができます。これらのキャリッジリターン(改行)をUIWebViewで正しく表示するにはどうすればよいですか?iPhoneのUIWebViewに改行を正しく保存/表示するにはどうすればよいですか?

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

をしかし、それは改行を持つものとして認識されたテキストのように見えていません:私はこのような何かを使用してみましたが、テキストは、WebViewの内の1本の連続した線で表示されます。コンソールでテキストを印刷すると、改行はそのまま残ります。

上記の例のコードで\ n、\ r、\ r \ nを使用してみましたが、成功しませんでした。ユーザーのテキストを間違って保存していますか、ディスプレイ側で間違ったことをしていますか?私は間違っていないよ場合は、HTMLブレークタグと"\\n"を交換する際に

答えて

2

検索文字列に2つのバックスラッシュが表示されます。"\n"を置き換える必要があります。"\\n"ではなく、それを動作させる必要があります。

ただし、really want to sanitize your inputをUIWebViewに読み込む前に、少なくとも<、>、&、および "。

+0

をマスクする必要があります。余分なバックスラッシュが原因でした。私は二重バックスラッシュを別の場所でお勧めしていたと私は誓っていました。 http://experimentgarden.blogspot.com/2009/07/how-to-stop-hacker-dont-trust-user.html NSStringを拡張する基本的なsanitizeForDisplayメソッドを書きました。 – bruce1337

0

、それは次のようになります。

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

あなたがbreak文でスラッシュが欠落していたようです。

関連する問題