2011-06-01 47 views
0

我們在CGBitmapContext中使用德語混音功能「ShowTextAtPoint」替換文本時出現問題。不顯示無音符字符。 有沒有人有任何解決方法的想法?在CGBitmapContext中沒有德語混音

感謝回答, 弗蘭克

+0

可能重複[無德語umlaute與函數「ShowTextAtPoint」在CGBitmapContext](http://stackoverflow.com/questions/6731990/no-german-umlaute-with-function-showtextatpoint-in-cgbitmapcontext) – ughoavgfhw 2011-08-19 19:19:52

回答

1

的問題是,對於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() 
1

您還可以使用轉義序列來得到它的工作:

看到這個頁面爲你想要的字符:http://en.wikipedia.org/wiki/Mac_OS_Roman

「\ x80,\ xE8,\ xEC,\ x85,\ x86」會給出大寫元音的順序:A,E,I,O,U與umlaute

「\ x8A,\ x91,\ x95,\ x9A,\ x9F」將按小寫字母的順序給出:a,e,i,o,u與umlaute

MacRoman包含您需要的字符,如果你喜歡在CoreGraphics中工作,你不需要使用UIKit。