J'ai une chaîne dans mon interface graphique de cacao qui doit avoir un formatage spécial (polices, couleurs, etc.). Naturellement, j'utilise une chaîne attribuée. Pour plus de commodité, j'INIT la chaîne au format RTF:RTFString contenant des caractères spéciaux 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];
Le problème est, la « inputString » pourrait avoir des caractères spéciaux qui ne sont pas affichés correctement en raison de la UTF8Encoding. Ils sont remplacés par d'autres symboles. é est laissé à ©.
Alors, en ce moment je fais ceci:
NSData* intermediateDataString=[inputString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
inputString = [[[NSString alloc] initWithData:intermediateDataString encoding:NSUTF8StringEncoding] autorelease];
Cela ne présente pas les caractères inattendus, mais il ne supprime tous les accents et laisse à leur place la lettre inaccentuée - é est laissée et.
Ceci est une amélioration puisque tout peut être lu, mais il est loin d'être idéale.
Pensées?
Je aime bien cette idée. Je vais l'essayer. Merci! –
BELLE !!!! Travaillé comme un charme. Quelle excellente idée! –