【问题标题】:Force .NET to write native persian numerics instead of US format强制 .NET 编写本机波斯数字而不是美国格式
【发布时间】:2013-02-12 07:14:12
【问题描述】:

我尝试设置 ASP.NET 应用程序的 Culture 和 UICulture,但没有成功。 还在 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 ٠١٢٣٤٥٦٧٨٩

代码中有没有我遗漏的部分?

【问题讨论】:

标签: c# asp.net .net vb.net cultureinfo


【解决方案1】:

C#/.Net 框架不支持输出 0-9 以外的数字(也不支持解析)。

您需要自己输出数字。您应该能够首先使用内置代码格式化数字(以获得正确的分组/小数分隔符/货币),然后使用 String.Replace 将 0-9 替换为国家数字或将数字映射到您需要的字符并使用 @987654322 加入它们@。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多