【发布时间】: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