我想在西方阿拉伯语中显示数字,如“0123456789”,无论我的本地窗口如何。我见过许多转换为东部阿拉伯语的方法,如“0123456789”
const UInt16 sh = 0x0660 - 0x0030;
string ConvertToEasternArabic(string value)
{
System.Text.StringBuilder s = new System.Text.StringBuilder();
String lst = value.ToString();
foreach (char x in lst)
{
if (char.IsDigit(x))
{
UInt16 c = Convert.ToUInt16(x);
c += sh;
s.Append(Convert.ToChar(c));
}
else
s.Append(x);
}
return s.ToString();
}
但我想要相反的
答案 0 :(得分:0)
这很有趣。 NumberFormatInfo
类具有NativeDigits
属性。但是,MSDN says that:
格式化或解析数值或日期和时间值时,仅使用基本拉丁数字0(U + 0030)到9(U + 0039)
这意味着无论使用何种窗口,本地string.Format()
和int.ToString()
数字0-9都用于生成输出字符串。