我在将韩元、柬埔寨瑞尔和伊朗里亚尔的十进制转换为货币并将结果显示到 UILabel 文本时遇到问题。
转换本身顺利进行,我可以在调试器中看到正确的货币符号,甚至 NSLog 也能很好地打印该符号。
如果我将此 NSString 实例分配给 UILabel 文本,货币符号将显示为交叉框而不是正确的符号。之间没有其他代码,无论我使用什么字体。
我尝试使用 unicode 值 (0x20A9) 甚至使用 UTF8 表示形式 (\xe2\x82\xa9) 打印 ₩(韩元),但我得到的只是标签上的交叉框。
iPhone SDK 和 NSLocale 中支持的任何其他货币(近 170 种货币)都可以正常工作,无论该货币有多么奇特。
还有其他人遇到同样的问题吗?有“治愈方法”吗?
Thanks
EDIT:
-(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];
亲爱的塞尔维亚人,你没有任何问题!您只需使用有限的(非)Unicode 字体。
在 UI 中,您应该向用户显示一些字符,IRR 和 KHR 等位于不同的 unicode 块中,并且您用来向用户显示的字体应该支持所有这些字符。
我强烈推荐你使用Arial Unicode MS确保您是否有字体问题。
如果您的问题通过字体解决了。您必须使用支持所有字符块的 Unicode 字体 - 或创建您自己的字体
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)