Я пишу приложение iOS, которое получает данные от бэкэнд. Я разбираю объект NSData (objectNotation), как показано ниже.iOS - Преобразование данных UTF8 из бэкэнд и неправильное отображение
Все работает отлично, пока я получить специальный символ в одно целое, которое:
«Тест já»
Когда я получаю это, и я отладки parsedObject, он показывает «тип», чтобы быть " Тест j \ U00e1 "
Таким образом, это, очевидно, проблема с Unicode/UTF8. Затем я перешел к переполнению стека и нашел различные потенциальные решения для этого и попробовал их все, безрезультатно.
NSString *stringTest = [[NSString alloc] initWithData:objectNotation
encoding:NSUTF8StringEncoding]; --> does not work
NSString * test2 = [NSString
stringWithCString:[stringTest cStringUsingEncoding:NSUTF8StringEncoding]
encoding:NSASCIIStringEncoding]; --> does not work
Я попробовал каждую кодировку, Obj может предложить, и она возвращает либо символ как \ U00e1, или ноль, или кучу мусора.
Я боролся с этим часами, поэтому сейчас самое подходящее время для публикации. Я ценю любую помощь. Спасибо.
код ниже:
NSDictionary *parsedObject = [NSJSONSerialization JSONObjectWithData:objectNotation options:0 error:&localError];
NSMutableArray *btms = [[NSMutableArray alloc] init];
NSArray *results = [parsedObject valueForKey:@"results"];
NSLog(@"Count %d", results.count);
NSLog(@"Count %d", parsedObject.count);
[parsedObject enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL* stop) {
BTM *btm = [[BTM alloc] init];
NSLog(@"%@ => %@", key, value);
btm.number = key;
btm.latitude = [value valueForKey:@"lat"];
btm.longitude = [value valueForKey:@"long"];
NSString* temp = [value valueForKey:@"type”];
}
привет, спасибо. Я должен был изменить свой NSURLRequest на NSMutableURLRequest, очевидно, чтобы это сделать. Затем я устанавливаю URL-адрес, а затем вызываю setValue в соответствии с вашим кодом. Это верно? К сожалению, это не помогло. – Zephyr