当前位置:  开发笔记 > IOS > 正文

Unicode字符不显示

如何解决《Unicode字符不显示》经验,为你挑选了1个好方法。

我想使用显示"无限"符号

CGContextSelectFont(context, "HelveticaNeue", textSize, kCGEncodingMacRoman);    
CGContextShowTextAtPoint(context, myCenter.x, myCenter.y + textHeight, [sName     cStringUsingEncoding:NSMacOSRomanStringEncoding], [sName length]); 

它显示为方框或圆形.我发现这个符号是十六进制176和221E十六进制格式.我使用Helvetica作为我的字体,并尝试过其他没有运气的人.这是我正在使用的编码的问题吗?



1> Jason Coco..:

事实证明,CGContextSelectFont仅支持MacRoman编码,它基本上只有一小组字符.为了在字符串中显示Unicode字符,您必须使用CGSetFont或Cocoa绘图系统.CGSetFont要求您始终使用Cocoa将字符映射到字形,然后使用CGContextShowGlyphsAtPoint绘制字形.如果您确实需要显示Unicode字符,我建议您查看绘制这些字符串的其他方法.

此代码基本上将显示无穷大符号:

- (void)drawRect:(CGRect)rect {
    unichar inf = 0x221E; // infinity symbol
    NSString* sName = [[NSString alloc] initWithCharacters:&inf length:1];
    UIFont* font = [UIFont fontWithName:@"Helvetica" size:32.0];
    [sName drawInRect:CGRectMake(20, 20, 40, 40)
             withFont:font];
    [sName release];
}

另请注意,在iPhone(以及Mac)上,Helvetica Neue实际上并不存在......它的名称只是映射回标准的Helvetica.有关iPhone上可用字体的更多信息,请参阅http://daringfireball.net/misc/2007/07/iphone-osx-fonts上的表格.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有