我在将韩元、柬埔寨瑞尔和伊朗里亚尔的十进制转换为货币并将结果显示到 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];