我在将十进制转换为韩元、柬埔寨瑞尔和伊朗里亚尔的货币时遇到了问题,并将结果显示在UILabel文本中。
转换本身没有问题,我可以在调试器中看到正确的货币符号,甚至NSLog也能正确地打印出符号。
如果将这个NSString实例分配给UILabel文本,货币符号会显示为一个被划掉的框而不是正确的符号。之间没有其他代码,无论使用什么字体都无关紧要。
我尝试使用Unicode值(0x20A9)甚至使用UTF8表示(\xe2\x82\xa9)打印₩(韩元),但标签上只会显示一个划掉的框。
iPhone SDK和NSLocale中的任何其他支持的货币(近170种货币)都能正常工作,无论货币有多奇特。
还有其他人遇到同样的问题吗?有没有“解决方案”?
谢谢
编辑:
转换本身没有问题,我可以在调试器中看到正确的货币符号,甚至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];