Строка. Формат, не преобразовывающий целые числа правильно на арабском языке

У меня есть проблема со Строкой. Формат. Следующие форматы кода строка правильно кроме первого целого числа. Текущая культура установлена на иракский арабский язык (IQ площади):

int currentItem= 1;
string of= "من";
int count = 2;
string formatted = string.Format(CultureInfo.CurrentCulture, "{0}{1}{2}", currentItem, of, count);

Текст отформатирован справа налево, и эти 2 преобразовывается в арабскую цифру, но этот 1 не.

Какие-либо идеи?

9
задан Ken Jackson 16 June 2010 в 16:18
поделиться

1 ответ

Поведение по умолчанию для преобразования числовых значений - «Контекст», что в основном означает, что если число продолжается на арабском языке, они отображаются на арабском языке (или другом «нелатинском» символе), если они » Это не значит, что они отображаются в «стандартных» европейских номерах.

Вы можете довольно легко изменить это поведение:

var culture = CultureInfo.CurrentCulture;
culture.NumberFormat.DigitSubstitution = DigitShapes.NativeNational; // Always use native characters
string formatted = string.Format(culture, "{0:d}{1:d}{2:d}", currentItem, of, count);

Это должно сработать так, как вы ожидаете - подробности на MSDN .

3
ответ дан 5 December 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: