-[NSMutableAttributedString initWithHTML:documentAttributes:]
似乎破坏了特殊字符:
NSString *html = @"“Hello” World"; // notice the smart quotes
NSData *htmlData = [html dataUsingEncoding:NSUTF8StringEncoding];
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithHTML:htmlData documentAttributes:nil];
NSLog(@"%@", as);
打印“Hello†World
后跟一些 RTF 命令。在我的应用程序中,我将属性字符串转换为 RTF 并将其显示在 中NSTextView
,但那里的字符也已损坏。
根据文档,默认编码是 UTF-8,但我尝试显式,结果是一样的:
NSDictionary *attributes = @{NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]};
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithHTML:htmlData documentAttributes:&attributes];