objective c - मैं एनएसएसटींग मान को एनएसडीटा में कैसे परिवर्तित करूं?




objective-c nsstring (7)

उद्देश्य सी

NSString *str = @"Hello World";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];

तीव्र

let str = "Hello World"
let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false)

मैं NSString मान को NSData कैसे परिवर्तित करूं?


सबसे पहले, आपको dataUsingEncoding: उपयोग करना चाहिए dataUsingEncoding: UTF8String माध्यम से जाने के बजाय। जब आप उस एन्कोडिंग में C स्ट्रिंग की आवश्यकता होती है तो आप केवल UTF8String उपयोग करते हैं।

फिर, UTF-16 , बस अपने dataUsingEncoding: में NSUnicodeStringEncoding बजाय NSUnicodeStringEncoding पास करें dataUsingEncoding: संदेश।


स्विफ्ट डेवलपर यहां आने के मामले में,

एनएसएसटींग / स्ट्रिंग से एनएसडीटा में कनवर्ट करने के लिए

var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)

NSJSONSerialization:JSONObjectWithData कनवर्ट करने से इस तरह के पीछे \0 बाइट को मजबूर कर दिया जाएगा, जिसका अर्थ है NSJSONSerialization:JSONObjectWithData और अन्य विफल हो जाएंगे जब तक आप इसे हटा नहीं देते।

मैं करता हूँ

NSData* data = [yourString dataUsingEncoding:NSUTF8StringEncoding];

और फिर

data = [data subdataWithRange:NSMakeRange(0, [data length] - 1)];

फिर NSJSONSerialization:JSONObjectWithData साथ आगे बढ़ने के लिए स्वतंत्र महसूस करें NSJSONSerialization:JSONObjectWithData


NSString *str = @"Banana";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:true];

NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];

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






nsdata