2012-01-01 5 views
3

バイト:NSDataのは、私は次のようになりバイトのNSDataを取得した文字列

2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d353731 35343039 37373139 
    34383437 34303832 30333533 30383232 380d0a43 6f6e7465 6e742d44 6973706f 73697469 6f6e3a20 
    666f726d 2d646174 613b206e 616d653d 2266696c 65223b20 66696c65 6e616d65 
    3d224265 61636820 426f7973 202d2047 6f6f6420 56696272 6174696f 6e732e6d 

と私はNSStringのにそれを変換したい、私はこの方法を試してみましたが、それは文字列に私にnilを与える:

NSString* postInfo = [[NSString alloc] initWithBytes:[postDataChunk bytes] length:[postDataChunk length] encoding:NSUTF8StringEncoding]; 
+0

これはまったく同じことではありませんが、使用することができます:http://stackoverflow.com/questions/1305225/best-way-to-serialize-a-nsdata-into-an-hexadeximal-string –

+2

NSASCIIStringEncodingを使用すると、UTF8はすべてのデータを変換することができない場合があります。 – rishi

+0

'[NSString alloc] initWithBytes:...'は動作するはずです。 'NSData'オブジェクトをチェックして、期待どおりのものが含まれていることを確認してください。 – sjs

答えて

6

あなたが使用することができ、

NSString* newStr = [[NSString alloc] initWithData:theData 
             encoding:NSUTF8StringEncoding]; 

データは、NULLで終了である場合は、代わりに

を使用する必要がありますさらに、参照用
NSString* newStr = [NSString stringWithUTF8String:[theData bytes]]; 

は、これらのリンクを参照してください。

Convert UTF-8 encoded NSData to NSString

NSString class reference

http://homepage.mac.com/mnishikata/objective-c_memo/convert_nsdata_to_nsstring_.html

0

あなたはNSDataオブジェクトの実際の進値をトレースするために探しているなら、私が使用しますこのアプローチ:

uint8_t *bytes = (uint8_t*)myNSDataObject.bytes; 
NSMutableString *bytesStr= [NSMutableString stringWithCapacity:sizeof(bytes)*2]; 
for(int i=0;i<sizeof(bytes);i++){ 
    NSString *resultString =[NSString stringWithFormat:@"%02lx",(unsigned long)bytes[i]]; 
    [bytesStr appendString:resultString]; 
} 
+0

' - [NSData description]'を呼んで不要な文字をすべて削除しないでください。 –

関連する問題