gpt4 book ai didi

iphone - NSData 到 NSString 的转换问题!

转载 作者:太空狗 更新时间:2023-10-30 03:41:14 24 4
gpt4 key购买 nike

我正在获取一个作为 NSData 的 html 文件,需要对其进行解析以提取一些信息。我的方法是将其转换为具有 UTF8 编码的 NSString(html 具有非英语字符,例如俄语)——它失败了。我用过类似的东西:

NSString *respData = [NSString stringWithUTF8String:[theData bytes]];

但它返回零。

唯一真正起作用的是

[NSString stringWithCString:[theData bytes] length:[theData length]];

但是当遇到俄语字符时,它会返回 jibrish。

然后我的下一个方法是解析数据的字节数组,提取我需要的字节并以某种方式将它们转换为 NSString。我试过类似的东西:

-(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];
}

最佳答案

假设您得到一个 NSURLResponse* 响应和一个 NSData* 数据:

CFStringEncoding cfEncoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef) [response textEncodingName]);
NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding);

NSString* string = [[NSString alloc] initWithData:data encoding:encoding];

// Do stuff here..

[string release];

关于iphone - NSData 到 NSString 的转换问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1409537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com