2012-03-29 4 views
0

У меня есть вопрос о YAJLiOS парсер ... У меня есть следующие данные JSon:YAJLiOS не может разобрать не английские буквы?

{{ 
    body = "Привет"; 
    mid = 3; 
    "read_state" = 1; 
    } 
    { body = "hi"; 
    mid = 3; 
    "read_state" = 1; 
    }} 

и я пытаюсь получить "тело", результат: "\ U0416 \ U0412" и "привет"

это может быть проблема с кодировкой, но я понятия не имею, как это исправить

Спасибо за ваше время!

+0

Можете ли вы показать код, из которого вы делаете разбор? – jonkroll

+0

уверен: NSString * getFriendDialogs = [NSString stringWithFormat: @ "https://api.vk.com/method/messages.getHistory?access_token=%@&uid=%@&chat_id=uid&count=10", currentAccessToken, UidOfSelectedFriend] ; NSURL * url = [NSURL URLWithString: getFriendDialogs]; NSURLRequest * requestObj = [NSURLRequest requestWithURL: url]; NSData * tempContainer = [NSURLConnection sendSynchronousRequest: requestObj returnResponse: nil error: nil]; NSDictionary * dialogsDictionary = [tempContainer yajl_JSON]; idString = [dialogsDictionary valueForKey: @ "body"]; – ignotusverum

ответ

0

Возможно, вам придется преобразовать в строку сначала, чтобы иметь дело с кодировкой символов UTF-8.

NSData *tempContainer = [NSURLConnection sendSynchronousRequest:requestObj returningResponse:nil error:nil]; 

NSString *tempString = [NSString stringWithUTF8String:[tempContainer bytes]]; 

NSDictionary *dialogsDictionary = [tempString yajl_JSON]; 
+0

спасибо, но это не помогает; ( – ignotusverum

+0

есть другая кодировка символов, которую я могу использовать? – ignotusverum

+0

NSData tempContainer = [NSURLConnection sendSynchronousRequest: requestObj returnResponse: nil error: nil]; NSString content = [[NSString alloc] initWithData: tempContainer encoding: NSUTF8StringEncoding]; все в порядке, когда я использую этот код, но нужно nsdictionary not nsstring – ignotusverum

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