【问题标题】:UILabel + IRR, KRW and KHR currencies with wrong symbolUILabel + IRR、KRW 和 KHR 货币符号错误
【发布时间】:2023-03-27 19:20:01
【问题描述】:

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

【问题讨论】:

  • 你用的是什么字体?
  • 一点都不重要。我试过 Helvetica、Helvetica Neue、Times New Roman、Trebuched MS ...
  • @KennyTM:哈哈,这解决了韩元,但 IRR 和 KHR 仍然一团糟......
  • 你能告诉我你是如何产生这个问题的吗?有人告诉我,在韩国 iPhone 上,$ 符号显示为一个矩形,但我无法生成它,而且如果不生成它,我真的无法修复它。我尝试将语言更改为韩语,但仍然无法产生此问题。谢谢

标签: iphone unicode nsstring uilabel currency


【解决方案1】:

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

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

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

【讨论】:

  • 纳赛尔,谢谢你的回答。不幸的是,这不是解决方案。 Arial Unicode MS 仅解决韩元。 IRR 和 KHR 符号仍然损坏。
  • 塞尔维亚人,如果你创建 unicode simbols,我确定你有字体问题,你能告诉我你是什么字符(十进制)或 unicode 代码吗?很明显,哪个 Arial Unicode MS 支持所有字符,如果您将正确的符号传递给 UI,您应该会看到正确的符号,因此您正在向 UI 发送无效代码并想看看您认为正确的代码。 ---------- Doyouuse a Standard Unicode Keyboard 吗?那是什么,谁的标准?可能是您的键盘生成的键码无效。请告诉我你的键盘布局是什么?
猜你喜欢
  • 2019-02-23
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 2017-06-22
  • 2017-06-13
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多