我们在使用ShowTextAtPoint
中的函数CGBitmapContext
显示带有德语元音的文本时遇到问题。不显示变音字符。
我们尝试从XCode转换代码:
CGContextSelectFont(MyBitmapContext, FontName, 24, kCGEncodingMacRoman);
CGContextShowTextAtPoint(MyBitmapContext, x, y, [caption cStringUsingEncoding:
NSMacOSRomanStringEncoding], [caption length]);
到MonoTouch:
MyBitmapContext.SelectFont(FontName, 24, CGTextEncoding.MacRoman);
MyBitmapContext.ShowTextAtPoint(x, x, caption , caption.Length);
非常感谢您的帮助。
谢
答案 0 :(得分:3)
问题是CGContext的CoreGraphics API不支持渲染UTF8代码,它仅限于MacRoman中的文本编码(正如您在样本中所示)。
修复是使用UIKit函数,为此,您可以将代码更改为:
UIGraphics.PushContext (mBmpContext);
mBmpContext.SetRGBFillColor(1f,1f,1f,1f);
var font = UIFont.FromName ("Arial", 30);
using (var nsstr = new NSString ("äöü ÜÖÄ")){
nsstr.DrawString (new PointF (10, 400), font);
}
UIGraphics.PopContext ()