将韩元,柬埔寨瑞尔和伊朗里亚尔的十进制转换为货币并将结果显示在UILabel文本时,我遇到了问题。
转换本身传递得很好,我可以在调试器上看到正确的货币符号,甚至NSLog也能很好地打印符号。
如果我将此NSString实例分配给UILabel文本,则货币符号将显示为交叉框而不是正确的符号。之间没有其他代码,无论我使用什么字体。
我尝试使用unicode值(0x20A9)或甚至使用UTF8表示(\ xe2 \ x82 \ xa9)打印₩(韩元),但我得到的只是标签上的交叉框。
iPhone SDK和NSLocale中的任何其他受支持货币(近170种货币)无论货币多么具有异国情调,都能完美无缺。
其他人遇到同样的问题?对此有“治愈”吗?
由于
编辑:
-(NSString *)decimalToCurrency:(NSDecimalNumber *)value byLocale:(NSLocale *)locale
{
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setLocale: locale];
[fmt setNumberStyle: NSNumberFormatterCurrencyStyle];
NSString *res = [fmt stringFromNumber: value];
[fmt release];
return res;
}
lbValue.text = [self decimalToCurrency: price byLocale: koreanLocale];
答案 0 :(得分:0)
如果你的问题用字体解决了。您必须使用支持所有字符块的Unicode字体 - 或创建您自己的字体