2014-06-12 92 views
-3

我在嘗試將NSString轉換爲NSMutableData而不使用encoding。我怎樣才能做到這一點?iOS:我如何將NSString轉換爲NSMutableData?

+2

你的意思是_without encoding_?你想在這裏實現什麼? – holex

+0

一個'NSString'內部使用的UTF16,但我懷疑你想要那些字節。那麼你想要什麼編碼?如果字符串包含Å甚至是? – zaph

+0

[將NSString轉換爲Objective C中的'NSMutableData'?]可能重複(http://stackoverflow.com/questions/37023987/convert-nsstring-to-nsmutabledata-in-objective-c) – Avt

回答

1

這個怎麼樣?

NSString *str = @"grazz"; 
NSMutableData *data1 = [[str dataUsingEncoding:NSUTF8StringEncoding] mutableCopy]; 
NSMutableData *data2 = [NSMutableData dataWithBytes:[str UTF8String] length:[str length]]; 

PS:我不知道「無編碼」,那你的意思了?

+0

尊重你的努力sir 。我認爲你的答案稍後會有所幫助。 –

0

爲什麼問題是downvoted?

NSString* str = @"teststring"; 
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 
NSMutableData *yourdata = [data mutableCopy]; 

首先你要轉換爲NSData再到NSMutableData。據我所知,我們不能直接從NSString轉換爲NSMutableData

+0

我認爲它會幫助你 –

1

正如此處指出的:NSString value to NSData,您可以使用dataUsingEncodingNSString轉換爲NSData

要將其放置在一個NSMutableData容器,只需做一個mutableCopy,像這樣:

NSString *string = @"MyString"; 
NSMutableData *mutableData = [[string dataUsingEncoding:NSUTF8StringEncoding] mutableCopy]; 

至於這樣做「而無需使用encoding」,該字符串將始終編碼。即使你沒有設置任何特定的encoding,字符串仍然會被編碼。我認爲上述解決方案應該可以解決您的問題。