我们在用CGBitmapContext中的函数"ShowTextAtPoint“显示带有德语元音的文本时遇到了一个问题。不显示变音字符。有没有人有什么变通办法?
谢谢你的回答,弗兰克
发布于 2011-08-20 02:56:43
问题是用于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 ()发布于 2012-03-09 10:00:04
您还可以使用转义序列使其工作:
查看您想要的字符的页面:http://en.wikipedia.org/wiki/Mac_OS_Roman
"\x80,\xE8,\xEC,\x85,\x86“将给出大写元音的顺序: A,E,I,O,U带元音
"\x8A,\x91,\x95,\x9A,\x9F“将给出小写元音的顺序: a,e,i,o,u带元音
MacRoman包含了您需要的字符,因此如果您喜欢在CoreGraphics中工作,则不需要使用UIKit。
https://stackoverflow.com/questions/6201193
复制相似问题