我采用了@Marcel B 方法/解决方法,因为我面临与原始问题状态相同的问题。
就我而言,它适用于“ar-KW”文化。唯一的区别是我使用的NumberFormat.NativeDigits已经是CultureInfo的一部分。
您可以像这样检查(基于您当前的线程场景):
Thread.CurrentThread.CurrentCulture.NumberFormat.NativeDigits
因此,代码将如下所示:
private static class ArabicNumeralHelper
{
public static string ConvertNumerals(this string input)
{
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
if (new string[] { "ar-lb", "ar-SA" }
.Contains(cultureInfo.Name))
{
return input.Replace('0', cultureInfo.NumberFormat.NativeDigits[0])
.Replace('1', cultureInfo.NumberFormat.NativeDigits[1])
.Replace('2', cultureInfo.NumberFormat.NativeDigits[2])
.Replace('3', cultureInfo.NumberFormat.NativeDigits[3])
.Replace('4', cultureInfo.NumberFormat.NativeDigits[4])
.Replace('5', cultureInfo.NumberFormat.NativeDigits[5])
.Replace('6', cultureInfo.NumberFormat.NativeDigits[6])
.Replace('7', cultureInfo.NumberFormat.NativeDigits[7])
.Replace('8', cultureInfo.NumberFormat.NativeDigits[8])
.Replace('9', cultureInfo.NumberFormat.NativeDigits[9]);
}
else return input;
}
}
我希望它有所帮助。