Так что этот кусок кода:Re-кодирующая NSString возвращает нуль
if ([receivedPage hasPrefix:[NSString stringWithUTF8String:"\xC3\xAF\xC2\xBB\xC2\xBF"]]) // UTF-8 BOM 'EF BB BF' as UTF-16 chars
{
//DebugLog(@"converting calls list to UTF8");
receivedPage = [[[NSString alloc] initWithData:[receivedPage dataUsingEncoding:NSISOLatin1StringEncoding] encoding:NSUTF8StringEncoding] autorelease];
}
Однако иногда, когда, если верно, то receivedPage становится нулевым. почему это произойдет?
Принимаемый страница возвращаемое значение этой функции:
NSURLResponse * response;
NSData * result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:error];
if ([result length] > 0)
return [[[NSString alloc] initWithBytes: (const void*)[result bytes] length:[result length] encoding: encoding] autorelease];
else
{
if (error && *error)
DebugLog(@"URL request got error: %@",*error);
return nil;
}
Кодирование здесь NSISOLatin1StringEncoding (не знаю почему, я отладки чужой код).
Любая идея, почему это произойдет?