2011-02-26 92 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.是够好的。