-[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];