NSMutableAttributedString显示阿拉伯语的错误语法

时间:2014-06-18 19:48:43

标签: objective-c cocoa-touch ios7 nsattributedstring

我使用NSMutableAttributedString格式化字符串,如下所示:

NSString* nextPrayerString=@"للفجر";
NSMutableAttributedString *nextPrayerAttString=[[NSMutableAttributedString alloc] initWithString:nextPrayerString];
UIFont *nextPrayerNameFont=[UIFont fontWithName:@"Helvetica-Bold" size:21.0f];
[nextPrayerAttString addAttribute:NSFontAttributeName value:nextPrayerNameFont range:NSMakeRange(0,[nextPrayerString length])];

但在运行时,字符串显示为下图:

enter image description here

我希望它出现在我写的“للفجر”,请我帮忙。

1 个答案:

答案 0 :(得分:0)

我的第一个想法是你使用Helvetica作为阿拉伯语文本的字体。 Helvetica可能缺乏合适的连线和组合以显示阿拉伯文本的正确字符变体。 Geeza Pro是iOS的默认阿拉伯字体 - 也许尝试相反?

来自Apple's NSAttributedString Programming Guide: "脚本只能分配支持它们的字体。例如,汉字和阿拉伯字符不能分配Times-Roman字体,并且必须是支持这些脚本的重新分配字体。"