2012-01-30 5 views
-1

私は、この文字列働いています:HTML NSStringは異なる値を生成しますか?

NSString* embedHTML1 = @"\<html><head>\<style type=\"text/css\">\body {\background-color:  transparent;\color: white;\}\</style>\</head><body style=\"margin:0\">\<embed id=\"yt\" src=\"http://www.youtube.com/v/leqL1QENRTI?version=3&amp;hl=en_US1\" type=\"application/x-shockwave-flash\" \width=\"287\" height=\"125\"></embed>\</body></html>"; 

のUIWebViewに置かれたときに埋め込まれたユーチューブのクリップとして正常に動作します。

私は、サーバーからまったく同じ文字列をダウンロードして、そのようにNSStringの中にそれを配置するときしかし、私は、FTPサーバーを持っている:上記

NSString* embedHTML1 = [[NSString alloc] initWithFormat:@"%@", [link objectAtIndex:indexPath.row + startIndex]]; 
NSLog(@"%@", embedHTML1); 

[clip1 loadHTMLString:embedHTML1 baseURL:nil]; 

は、基本的には、配列に格納された文字列であります。それが上記のコードでNSLogの出力であることを証明する。

私が得るすべては「///」で始まり、「/」下

Image showing contents of the array

で私が間違って何をやっているで終わる白い画面でのUIWebViewのですか?私は今何をすべきかわからないあなたの助けに感謝します。文字列に欠けているものがありますか?

答えて

0

文字列をサーバーからダウンロードするときにエスケープする必要はありません。バックスラッシュを削除してください。

このコードは、バックスラッシュなしでHTML文字列をログに記録します。

NSString *htmlString = NSString* embedHTML1 = @"\<html><head>\<style type=\"text/css\">\body {\background-color:  transparent;\color: white;\}\</style>\</head><body style=\"margin:0\">\<embed id=\"yt\" src=\"http://www.youtube.com/v/leqL1QENRTI?version=3&amp;hl=en_US1\" type=\"application/x-shockwave-flash\" \width=\"287\" height=\"125\"></embed>\</body></html>"; 
NSLog(@"%@", htmlString); 
+0

あなたはまだ私は – schtever

+0

いいえ、いいえ、あなたがいないと思う埋め込まれた二重引用符をエスケープする必要があります。文字列をインラインで宣言するときにのみエスケープする必要があります。ダウンロードした文字列は、表示したい形式と同じでなければなりません。もちろん、ダウンロードした形式でエスケープする必要がある場合を除き(JSONなど) –

+0

*イージーヘッド* - もちろん!私はコードの断片を見ていて、リテラルからバックスラッシュを取り除くことを提案していると思っていました。申し訳ありません。 – schtever

関連する問題