我在我的可可GUI中有一個字符串,它需要特殊的格式(字體,顏色等)。當然,我使用的是一個屬性字符串。爲了方便起見,我初始化字符串爲RTF:RTFString包含NSASCIIStringEncoding特殊字符?
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。
這是一個改進,因爲一切都可以閱讀,但它是非常不理想。
想法?
我更喜歡這個想法。我會嘗試一下。謝謝! – 2010-08-01 18:49:10
美麗!像魅力一樣工作。多麼好的主意! – 2010-08-01 19:02:36