2014-02-13 2 views
2

웹 서비스에서 오는 문자열이 있는데, 키릴 문자와 라틴어/영어 문자가 혼합되어 있습니다. 문장에서 단어를 분리하여 배열을 만들 때 NSLog를 사용할 때 글자 대신에 유니 코드가 표시됩니다. 키릴 문자/유니 코드 문자를 적절한 읽을 수있는 라틴/영어 단어로 변환하는 방법을 알고 싶습니다. 키릴 문자에서 UTF8/라틴 문자 인코딩을 사용하는 NSString

(
The, 
"Tob\U0435", 
"El\U0456te" 
) 

내가 라틴어 "도베"라틴 "엘리트"를 음역이 필요합니다 예를 들어 ..

NSString *sentence = @"The Tobе Elіte"; (e in Tobe is Cyrillic, and i in Elite) 

는 인쇄 할 때 배열로 문자열에서 각 단어를 넣어 후 나는이 얻을 . 내가 끔찍이 설명 경우에 당신이 내 문제를 개선하는 데 도움 이해하는 질문이있는 경우 내가 사과 할

if(![@"Tobe" isEqualToString:[array objectAtIndex:1]]) 
     //Tobe is not Equal to Tob\U0435 

을 수행하여 내가 지금 무엇을 비교하려고하면 물어 주시기 바랍니다. 나는 이것을 적절한 UTF8로 인코딩하기 위해 여러 가지를 시도했다.

NSMutableString *buffer = [string mutableCopy]; 
CFMutableStringRef bufferRef = (__bridge CFMutableStringRef)buffer; 
CFStringTransform(bufferRef, NULL, kCFStringTransformToLatin, false); 

가 궁극적으로 내가 자 NSPredicate를 사용하여 단어를 일치하는 배열을 검색해야하지만 배열의 유니 코드로 나를 그렇게하도록 허용하지 않습니다 : 예를 들어,이 작동하지 않습니다. 어떤 도움을 주셔서 감사합니다.

NSString *sentence = @"The Tobе Elіte"; 
NSMutableString *buffer = [sentence mutableCopy]; 
CFMutableStringRef bufferRef = (__bridge CFMutableStringRef)buffer; 
CFStringTransform(bufferRef, NULL, kCFStringTransformToLatin, false); 
CFStringTransform(bufferRef, NULL, kCFStringTransformStripDiacritics, false); 
NSArray *arr = [buffer componentsSeparatedByString:@" "]; 
NSLog(@"%@", arr); 

당신은 여기에 몇 가지 더 많은 정보를 찾을 수 있습니다 :

답변