JSONObjectWithData возвращает значение null без ошибки, если строка json содержит знак градуса ° (U+00B0). Строка json отображается нормально, если я отправляю ее в свой настольный браузер.
Мой код (категория) с несколькими NSLogs, чтобы увидеть, что происходит, выглядит так...
+(NSDictionary*)dictionaryWithContentsOfJSONURLString:(NSString *)urlAddress{
__autoreleasing NSError* error = nil;
NSData* data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlAddress] options:NSDataReadingUncached error:&error];
if (error != nil) {
NSLog(@"%@",[error localizedDescription]);
} else {
NSLog(@"No Error: %@", data); //looks good here. console displays the raw data
}
id result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if (error != nil) {
NSLog(@"%@",[error localizedDescription]);
return nil;
} else {
NSLog(@"No Error: %@", [result objectForKey:@"exams"]); //console displays the value ("No Error: value for key...") unless a degree symbol is present in which case it displays No Error: (null)
}
return result;
}
Поэтому я не получаю никаких ошибок, но JSONOBjectWithData возвращает значение null, если полученная строка json содержит символ степени.
Я использовал NSString с содержимым URL-адреса, чтобы увидеть, как xCode видит строку, и вместо символа степени я получаю то, что, как мне кажется, является символом многоточия ∞. При просмотре в браузере эта же строка является символом градуса.
Это ошибка? Я должен что-то упустить.
Спасибо,
Джон