Ich zeichne einen String mit CGContextShowTextAtPoint. Also muss ich meinen NSString konvertieren, den ich in c Strings zeichnen möchte. Leider werden spezielle Symbole wie das Euro-Währungssymbol nicht korrekt angezeigt.Konvertieren eines NSString in eine cString für die Verwendung mit CGContextShowTextAtPoint
CGContextSelectFont(currentContext, "TrebuchetMS", 15, kCGEncodingMacRoman);
CGContextShowTextAtPoint(currentContext, 0, 0, [myString cStringUsingEncoding:[NSString defaultCStringEncoding]], [myString length]);
Ich versuchte es mit der kCGEncodingFontSpecific Codierung in der CGContextSelectFont Funktion aber, dass entweder nicht funktioniert hat.
Aus Leistungsgründen muss ich die CG-Funktion verwenden, nicht die DrawInRect-Funktionen von NSString.
Vielleicht können Sie mir helfen!
PS: Ich weiß, dass dies ein oft ausgestelltes Thema ist, aber ich kann, warum ich es nicht herausfinden, nicht funktioniert ...
Zwei Dinge: 1. es gibt keine Garantie, dass defaultCStringEncoding entweder UTF-8 oder MacRoman ist, und 2. die als letztes Argument an CGContextShowTextAtPoint() übergebene Länge sollte die Länge der C-Zeichenfolge in Bytes und nicht die Zeichenlänge sein der NSString. –
Ja, für die MacRoman-Codierung sollten Sie NSMacOSRomanStringEncoding anstelle von [NSString defaultCStringEncoding] verwenden. –