2012-03-15 5 views
0

내부 문자열이있는 서버에서 json 데이터를 수신하고 있습니다. 그들을 얻으려면 SBJsonhttps://github.com/stig/json-framework을 사용합니다.iOS : decode utf8 string

그러나 때 출력 UILabel에서 일부 문자열들은 다음과 같이 : \u0418\u043b\u044c\u044f\u0411\u043b\u043e\u0445 (그건 키릴 문자)

그리고 내가 정상 상징으로 그것을 라틴 문자

모든 권리 디코딩 할 수있어 어떻게?

점점 데이터에 대한 몇 가지 코드 :

NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    NSString *stringData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSDictionary *object = [parser objectWithString:stringData error:nil]; 
    NSString *comments = [NSString stringWithFormat:@"%@",[object valueForKey:@"comments"]]; 

문자열 는 매우 특별한 형식이 의견, 그래서 stringByTrimmingCharactersInSet 같은 일부 작업을하고있어,

stringByReplacingOccurrencesOfString,

NSArray* json_fields = [comments_modified componentsSeparatedByString: @";"];

최종 데이터를 얻으십시오.

일부 트리밍 한 후 수신 된 데이터의 예입니다/대체 (는 NSString* comments있어) :

"already_wow"=0;"date_created"="2012/03/1411:11:18";id=41598;name="\U0418\U043b\U044c\U044f\U0411\U043b\U043e\U0445";text="\U0438\U043d\U0442\U0435\U0440\U0435\U0441\U043d\U043e";"user_id"=1107;"user_image"="user_image/a6/6f/96/21/20111220234109510840_1107.jpg";"user_is_deleted"=0;username=IlyaBlokh;"wow_count"=0; 

당신은 내가보기에 표시하면 필드 textname가에서 (

인코딩 된 것을 볼 예를 들어, UILabel), 그들은 여전히 ​​동일하게 보입니다.

+0

@Erik Aigner, 네, 제 코드는 같습니다. 내 업데이트 된 질문을보세요. NSUTF8StringEncoding을 사용하여 구문 분석하기 전에 문자열을 구성합니다. –

답변

0

아마도 반환되는 문자열은 유니 코드 문자열 표현 (ASCII 문자열)입니다. 즉, utf8로 인코딩 된 내용을 반환하지 않았으므로 문자열 데이터를 얻기 위해 NSASCIIStringEncoding을 사용합니다

+0

전체 문자열에 대해 나중에 소문자로 만듭니다. –

+0

@IlyaBlokh는 내가 편집 한 방법을 시도합니다. –