Заставить.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']));