3

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

1 回答 1

0

亲爱的塞尔维亚人,你没有任何问题!!!您只需使用有限的(非)Unicode 字体。

在 UI 中,您应该向用户显示一些字符,并且 IRR 和 KHR 等在不同的 unicode 块中,并且您用来向用户显示的字体应该支持所有这些。我强烈建议您使用Arial Unicode MS以确保您是否有字体问题。

如果您的问题通过字体解决。您必须使用支持所有字符块的 Unicode 字体 - 或创建自己的字体

于 2010-02-02T10:33:50.267 回答