2

我正在构建一个特定于文化的 .NET Windows 应用程序,最近我遇到了一个数字形状的问题,它根据操作系统文化而改变。例如,如果操作系统文化是英语(美国)并运行应用程序,则显示的数字将是英文形状(我们以前通常使用的),但如果我将 windows 文化更改为阿拉伯语-沙特阿拉伯,则将显示数字在不同的形状。

我想强制此应用程序仅以英语形式显示数字,无论文化是什么。

我在互联网上搜索并厌倦了许多尝试更改应用程序文化和 UICulture 的解决方案而没有任何结果。

问候,

4

4 回答 4

1

您可以在进行字符串转换时指定要使用的文化,例如:

Dim i As Integer = 5
Dim s As String = i.ToString(CultureInfo.InvariantCulture)
于 2013-04-17T11:01:21.337 回答
1

在后面的代码中使用下面的代码:

CultureInfo ci = CultureInfo.CreateSpecificCulture(Thread.CurrentThread.CurrentCulture.Name);
        ci.NumberFormat.DigitSubstitution = DigitShapes.None;
        Thread.CurrentThread.CurrentCulture = ci;
于 2019-12-21T18:32:54.080 回答
0

尝试

culture.NumberFormat.DigitSubstitution=System.Globalization.DigitShapes.None;

于 2013-04-17T12:22:47.947 回答
0

直接在注册表中更改它。
就像英文形状一样:

Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", "sNativeDigits", "0123456789")

对于阿拉伯形状:

Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", "sNativeDigits", "٠١٢٣٤٥٦٧٨٩")
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", "NumShape", "2")
于 2018-01-29T09:44:38.373 回答