-[NSMutableAttributedString initWithHTML:documentAttributes:]
wydaje magiel znaków specjalnych:NSAttributedString initWithHTML niepoprawne kodowanie znaków?
NSString *html = @"“Hello” World"; // notice the smart quotes
NSData *htmlData = [html dataUsingEncoding:NSUTF8StringEncoding];
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithHTML:htmlData documentAttributes:nil];
NSLog(@"%@", as);
która drukuje “Hello†World
następnie niektórych poleceń RTF. W mojej aplikacji konwertuję przypisany ciąg do formatu RTF i wyświetlam go w postaci NSTextView
, ale tam też są uszkodzone znaki.
Zgodnie z dokumentacją, domyślne kodowanie UTF-8, ale starałem się być jawne, a wynik jest taki sam:
NSDictionary *attributes = @{NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]};
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithHTML:htmlData documentAttributes:&attributes];
Wielki. Dzięki za to. (y) – Sid
Najpierw powinieneś wypróbować drugą odpowiedź, na wypadek gdyby miała rację co do mojej odpowiedzi działającej tylko przypadkowo. Nie miałem okazji sam tego przetestować. : -X – alltom
Są częściowo w porządku. Jest to ta sama odpowiedź (mniej więcej) i działa.Uczyniłem tę odpowiedź jaśniejszą, ponieważ jest oznaczona jako poprawna. –