मुझे एनएसडीएटा के रूप में एक HTML फ़ाइल मिल रही है और कुछ जानकारी निकालने के लिए इसे पार्स करने की आवश्यकता है। मेरा दृष्टिकोण इसे यूटीएफ 8 एन्कोडिंग के साथ एनएसएसटींग में परिवर्तित करना था (एचटीएमएल में गैर अंग्रेजी वर्ण नहीं हैं, उदाहरण के लिए रूसी) - यह असफल रहा। मैंने ऐसा कुछ इस्तेमाल किया:NSData एनएसएसटींग कनवर्टन समस्या के लिए!
NSString *respData = [NSString stringWithUTF8String:[theData bytes]];
लेकिन यह शून्य हो गया।
केवल एक चीज है कि वास्तव में काम किया
[NSString stringWithCString:[theData bytes] length:[theData length]];
था लेकिन जब यह उदाहरण के लिए रूसी पात्रों का सामना करना पड़ता यह jibrish देता है।
फिर मेरा अगला दृष्टिकोण डेटा के बाइट सरणी को पार्स करना था, मुझे बाइट्स निकालने की ज़रूरत थी और किसी भी तरह उन्हें एनएसएसटींग में परिवर्तित कर दिया गया था। मैं ऐसा ही कुछ करने की कोशिश की:
सभी की-(NSString *)UTF8StringFromData:(NSData *)theData{
Byte *arr = [theData bytes];
NSUInteger begin1 = [self findIndexOf:@"<li>" bArr:arr size:[theData length]]+4;
NSUInteger end1 = [self findIndexOf:@"</li></ol>" bArr:arr size:[theData length]];
Byte *arr1 = (Byte *)malloc(sizeof(Byte)*((end1-begin1+1)));
int j = 0;
for (int i = begin1; i < end1; i++){
arr1[j] = arr[i];
j++;
}
arr1[j]='\0';
NSData *temp = [NSData dataWithBytes:arr1 length:j];
return [[NSString alloc] initWithData:temp encoding:NSUTF8StringEncoding];
}
आप कर रहे हैं * सुनिश्चित करें कि * उस फ़ाइल को UTF-8 के रूप में एन्कोड किया गया है, और आईएसओ 8859-5 या कुछ और के रूप में नहीं? – Wevah