5

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

コードで見逃した部分はありますか?

4

1 に答える 1

3

C#/ .Net フレームワークでは、0 ~ 9 以外の数字を出力するためのサポートはありません (解析サポートもありません)。

自分で数字を出力する必要があります。最初に組み込みコードを使用して数値をフォーマットし (正しいグループ化/小数点区切り/通貨を取得するため)、次に を使用して 0 ~ 9 を国別の数字に置き換えるString.Replaceか、数字を必要な文字にマップしてそれらを結合する必要がありますString.Join

 var converted = String.Join("", 123490.ToString().Select(c => "٠١٢٣٤٥٦٧٨٩"[c-'0']));
于 2013-02-12T07:41:34.247 に答える