UILabel + IRR, KRW и KHR валюты с неправильным символом - PullRequest
3 голосов
/ 01 февраля 2010

У меня возникают проблемы при преобразовании десятичной дроби в валюту для корейского вона, камбоджийского риеля и иранского риала и отображения результата в тексте UILabel.

Само преобразование проходит очень хорошо, и я вижу правильный символ валюты в отладчике, даже NSLog хорошо печатает символ.

Если я назначу этот экземпляр NSString тексту UILabel, символ валюты отображается в виде перечеркнутого прямоугольника вместо правильного символа. Между ними нет другого кода, не важно, какой шрифт я использую.

Я пытался напечатать ₩ (корейский вон), используя значение Юникода (0x20A9) или даже используя представление UTF8 (\ xe2 \ x82 \ xa9), но все, что я получаю, это перечеркнутый прямоугольник на метке.

Любая другая поддерживаемая валюта в iPhone SDK и NSLocale (почти 170 валют) работает отлично, независимо от того, насколько экзотична валюта.

Кто-нибудь еще испытывал такую ​​же проблему? Есть ли «лекарство» от этого?

Спасибо

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];

1 Ответ

0 голосов
/ 02 февраля 2010

Дорогой серб, у тебя нет проблем !!! вы просто используете ограниченный (не) шрифт Unicode.

в пользовательском интерфейсе вы должны отображать некоторые символы для пользователей, а IRR и KHR и т. Д. Находятся в разных блоках юникода, и Fonty, который вы используете для отображения пользователю, должен поддерживать их все. Я настоятельно рекомендую вам использовать Arial Unicode MS , чтобы убедиться, что у вас есть проблема со шрифтом или нет.

если ваша проблема решена с помощью шрифта. Вы должны использовать шрифт Unicode, который поддерживает все блоки символов - или создать свой собственный шрифт

...