将unicode数字从英语转换为devanagari

时间:2011-07-10 14:23:45

标签: asp.net unicode globalization transliteration

我正在寻找一些RegEx或任何其他方法将数字0-9转换为0-9(梵文脚本)。我正在使用asp.net但在全球化命名空间中找不到任何方法来执行此操作。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

找到了类似的帖子here

虽然我知道源文化和目的地文化,但我的解决方案有点不同。所以我可以硬编码数字数组。

        string devYear = "";
        string[] devD = { "०", "१", "२", "३", "४", "५", "६", "७", "८", "९" };
        char[] digits = curYear.ToCharArray();
        foreach (char ch in digits)
        {
            devYear += devD[int.Parse(ch.ToString())];
        }

另一个变化是我在迭代年份数字而不是devD数组。保存少量迭代,因为大多数数字将小于10位数。就我而言,只有四位数。

希望对于那些坚持类似路线的人有用。

答案 1 :(得分:0)

每个拉丁数字0..9是否恰好映射到devanagari digit(如果我理解维基百科,我的确如此)=

如果是,请参阅以下内容:

public static string ConvertDigits( string s )
{
    return s
        .Replace("0", "०")
        .Replace("1", "१")
        .Replace("2", "२")
        .Replace("3", "३")
        .Replace("4", "४")
        .Replace("5", "५")
        .Replace("6", "६")
        .Replace("7", "७")
        .Replace("8", "८")
        .Replace("9", "९");
}

为了优化,您可以在调用string.IsNullOrEmpty()函数之前检查string.Replace

另外(如果这适用于梵文数字),请拨打以char为参数而不是string s的string.Replace() function overload