我想使用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,则打印字体中的错误字符。
这是编码问题吗?
答案 0 :(得分:0)
不应该是:
unichar characterNumber = 150; //特定字体的字符150
NSString * myString = [NSString stringWithCharacters:& characterNumber length:1];
答案 1 :(得分:0)
事实证明,问题是字符0x007F(127)是DEL字符,并且是不可打印的。
我使用自定义字体的其他问题原来是编码问题,必须在Fontographer中而不是在NSString中解决。