2014-10-14 3 views
1

Я пишу приложение 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”]; 

}

ответ

0

Набор "применение/х-WWW-форм-urlencoded; кодировка = UTF-8", как 'Content-Type' во время приема данных из внутреннего интерфейса ,

[requestUrl setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 
+0

привет, спасибо. Я должен был изменить свой NSURLRequest на NSMutableURLRequest, очевидно, чтобы это сделать. Затем я устанавливаю URL-адрес, а затем вызываю setValue в соответствии с вашим кодом. Это верно? К сожалению, это не помогло. – Zephyr

Смежные вопросы