2011-11-14 11 views
2

私は自分のアプリケーションNSURLConnectionを使ってサイトのウェブページを取得しています。NSMutableData to NSStringはゼロを返す

私は、これは私が取得するデータの追加方法です

NSURL *url = [NSURL URLWithString:@"http://jokes.moment.co.il/default.asp?s1=4&s2=0"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [NSURLConnection connectionWithRequest:request delegate:self]; 

NSURLConnectionを呼び出す方法この:

-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    if (receivedData) 
    { 
     [receivedData appendData:data]; 
    } 
    else 
    { 
     receivedData = [[NSMutableData alloc] initWithData:data]; 
    } 
} 

をして、これは私はNSStringのに変換しようとする方法である:

-(void) connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSString *string = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; 
} 

receivedDataは47586バイトです。変換すると文字列はゼロになります

答えて

6

コンテンツタイプがISO-8859-1

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> 

にinitWithDataにお電話を変更してみてくださいは、あなたのURLのショーのためのコンテンツを簡単に見...

[[NSString alloc] initWithData:nsdata encoding:NSISOLatin1StringEncoding]; 
+0

素晴らしいです、私はすべてのutf encoding.thxを使用しようとする! – MTA

1

おそらく、受信した文字列がNSUTF8StringEncodingとして有効にエンコードされていない可能性があります。

文字列をファイルシステムに書き込んでから、変換エラーを記述するNSStringメソッドの1つをNSError**引数を使用して正確なエラーを知る必要があります。