NSAttributedString initWithHTML ¿codificación de caracteres incorrecta?
-[NSMutableAttributedString initWithHTML:documentAttributes:]
Parece destrozar personajes especiales:
NSString *html = @"“Hello” World"; // notice the smart quotes
NSData *htmlData = [html dataUsingEncoding:NSUTF8StringEncoding];
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithHTML:htmlData documentAttributes:nil];
NSLog(@"%@", as);
Que imprime“Hello†World
seguido de algunos comandos RTF. En mi aplicación, convierto la cadena atribuida a RTF y la muestro en unaNSTextView
, pero los personajes también están corrompidos allí.
Según la documentación, la codificación predeterminada es UTF-8, pero intenté ser explícito y el resultado es el mismo:
NSDictionary *attributes = @{NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]};
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithHTML:htmlData documentAttributes:&attributes];