将字体字符编号转换为字符串

时间:2015-09-10 23:19:32

标签: cocoa nsstring

我想使用NSString的drawAtPoint()例程在字体中绘制特定的字符编号。

为此,我将特定字符的整数值转换为NSString:

int characterNumber = 150; //character 150 in a particular font

NSString* myString = [NSString stringWithCharacters:(const unichar*)&characterNumber length:1];

如果字符编号小于128,则此方法有效。如果characterNumber大于(我的字体包含200多个字符),则不打印任何字符。如果字符编号为150,并且我将字符串长度更改为2,则打印字体中的错误字符。

这是编码问题吗?

2 个答案:

答案 0 :(得分:0)

不应该是:

unichar characterNumber = 150; //特定字体的字符150

NSString * myString = [NSString stringWithCharacters:& characterNumber length:1];

答案 1 :(得分:0)

事实证明,问题是字符0x007F(127)是DEL字符,并且是不可打印的。

我使用自定义字体的其他问题原来是编码问题,必须在Fontographer中而不是在NSString中解决。