概括
我正在为 iPhone 开发一个计算器应用程序,并希望将数学表达式绘制到 UIView,就像 LaTeX 外观一样。
所以我使用 cmr10.ttf(LaTeX 默认)作为绘图字体,但有些字符没有显示。
测试代码和细节
这是我的测试代码:
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
const int len = 4;
Byte cstr[len];
cstr[0] = 0x30; // 0
cstr[1] = 0x00; // Capital Gamma
cstr[2] = 0x41; // A
cstr[3] = 0x61; // a
NSString *str = [[NSString alloc] initWithBytes:(const void*)cstr length:len encoding:NSASCIIStringEncoding];
[str drawAtPoint:CGPointMake(10, 0) withFont:[UIFont fontWithName:@"cmr10" size:40]];
}
我曾期望向 UIView 显示“ 0ΓAa ”,但实际上显示“ 0Aa ”而没有大写 gamma。
根据 CMR10 代码表(见下文),0x00 表示大写 gamma。但在 ASCII 表中,0x00 表示 NUL 控制字符。这可能是未显示大写伽玛字符的原因。
这是CMR10的代码表。字母等一般字符与 ASCII 表的代码相同,但其他字符不同。
(来自http://www.tug.org/texlive//devsrc/Master/texmf-dist/doc/latex/base/encguide.pdf第 18 页)
问题
所以我想知道如何绘制一个字符代码与ASCII中的控制字符相同的字符。
附加信息
- 我在 BaKoMa 字体包中使用了 cmr10.ttf。
- 我正在 Xcode 4.6.1 和 iOS5 或更高版本的设备上开发这个计算器应用程序。