2013-02-12 1 views
5

Я попытался установить Культуру и UICulture приложения ASP.NET без успеха. Также попробовал это в C# Windows Application.Заставить .NET писать собственные персидские цифры вместо формата США

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 ٠١٢٣٤٥٦٧٨٩ 

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

+0

Если вы посмотрите документацию на имущество [ 'DigitSubstitution'] (http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.digitsubstitution.aspx) вы можете увидеть что он не используется (пока): _ Свойство DigitSubstitution зарезервировано для будущего использования. В настоящее время он не используется ни для операций синтаксического анализа, ни для форматирования для текущего объекта NumberFormatInfo. –

+0

Связанный: [Можно ли изменить английские номера на арабские/персидские представления при визуализации элемента управления?] (Http://stackoverflow.com/ вопросы/10069826/can-i-change-english-numbers-to-arabic-persian-Representations-when-a-control-is) и [Изменить английские номера на персидский и наоборот в MVC (httpmodule)?] (http: //stackoverflow.com/questions/13709718/change-english-numbers-to-persian-and-vice-versa-in-mvc-httpmodule) – sloth

ответ

3

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

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

var converted = String.Join("", 123490.ToString().Select(c => "٠١٢٣٤٥٦٧٨٩"[c-'0'])); 
+0

Спасибо. Отмечено как ответ –

 Смежные вопросы

  • Нет связанных вопросов^_^