2011-02-26 77 views
2

我有一個iPad應用程序,用於在SQLite數據庫中存儲一些unicode(非ASCII)數據。之後,我檢索這些數據並需要將其寫入pdf。所有的ASCII數據都沒問題,但unicode數據顯示爲「編碼字符」核心圖形中的Unicode字符

過程如下: 檢索數據並將其寫入控制檯。這很好。這裏是輸出到控制檯:查找:↑,使所有活動::COORDINATIONGOAL:

(小向上箭頭是我的Unicode字符)

在這一點上,數據存儲在一個NSString。所以接下來,我將其轉換爲一個字符,所以我可以在覈心顯卡使用它:

NSString *t = [data objectForKey:pi.persistencekey]; 
char *text = " "; 

if ([t length] > 0) {   
    text = [t UTF8String];    
} 

CGContextShowTextAtPoint (pdfContext, pi.x, pageRect.size.height - pi.y, text, strlen(text)); 

的PDF生成正常,但文本中生成顯示奇怪的字符,其中向上箭頭應該是。

我試過其他解碼方法,但都沒有工作。

在此先感謝您的幫助。

+0

你有沒有讀過Matt Gallagher的帖子 - > http://cocoawithlove.com/2011/01/advanced-drawing-using-appkit.html – 2011-02-26 21:54:33

回答

1

CGContextShowTextAtPoint在繪製unicode時有一些已知的缺陷。基本上沒有。

你有兩個選擇:

  1. 的NSString的drawAtPoint和它的朋友。它們可以通過搜索doc來找到UIStringDrawing。

  2. 或者如果您需要轉到低級核心文本。

大部分時間(99%)1.是夠好的。