Заставить.NET писать нативные персидские цифры вместо формата США

Я попытался установить Культуру и UICulture приложения ASP.NET безуспешно. Также попробовал это в Приложении C# Windows.

System.Globalization.CultureInfo a = new System.Globalization.CultureInfo("fa-IR");
a.NumberFormat.DigitSubstitution = System.Globalization.DigitShapes.NativeNational;
string Q = string.Format(a, "{0}", 1234567890); // Output 1234567890 instead of ٠١٢٣٤٥٦٧٨٩

Есть ли какая-то часть, которую я пропустил в коде?

1 ответ

Решение

В платформе C#/ .Net отсутствует поддержка вывода чисел с цифрами, отличными от 0-9 (и не поддерживается синтаксический анализ).

Вам нужно вывести цифры самостоятельно. Вы должны иметь возможность сначала отформатировать числа, используя встроенный код (чтобы получить правильную группировку / десятичный разделитель / валюту), а затем заменить 0-9 национальными цифрами, используя String.Replace или сопоставьте цифры нужным символам и присоедините их к String.Join,

 var converted = String.Join("", 123490.ToString().Select(c => "٠١٢٣٤٥٦٧٨٩"[c-'0']));
Другие вопросы по тегам