내 코코아 GUI에 특수 서식 (글꼴, 색 등)이 필요한 문자열이 있습니다. 자연스럽게, 나는 속성 문자열을 사용하고 있습니다. 편의를 위해, 나는 RTF로 문자열을 초기화 :NSASCIIStringEncoding 특수 문자가 포함 된 RTFString?
NSString *inputString = @"This string has special characters";
NSString *rtfString = [NSString stringWithFormat:@"{@"***LENGTHY RTF FORMATTING STRING *** %@", inputString];
NSAttributedString *testString = [[NSAttributedString alloc] initWithRTF:[rtfString dataUsingEncoding:NSUTF8StringEncoding] documentAttributes:nil];
문제는의 "inputString"때문에 UTF8Encoding에 제대로 표시되지 않는 특수 문자가있을 수 있습니다. 그들은 다른 기호로 대체됩니다. è은 Å ©으로 남습니다.
이NSData* intermediateDataString=[inputString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
inputString = [[[NSString alloc] initWithData:intermediateDataString encoding:NSUTF8StringEncoding] autorelease];
이 예상치 못한 문자를 표시하지 않지만, 모든 악센트를 제거 수행하고 그 대신에 악센트가없는 편지 잎 - é가로 남겨을 :
그래서, 지금 나는이 일을 해요 e.
모든 것을 읽을 수 있기 때문에 개선되었지만 이상적인 것은 아닙니다.
생각하십니까?
나는이 아이디어를 오히려 좋아합니다. 나는 그것을 밖으로 시도 할 것이다. 감사! –
BEAUTIFUL !!!! 매력처럼 일했습니다. 얼마나 훌륭한 아이디어인가! –