在C#中将尼泊尔Unicode转换为纯文本

时间:2015-07-30 15:40:26

标签: c# unicode

如何将尼泊尔语unicode转换为C#中的纯文本?

例如:我有尼泊尔unicode

म भात खान्छु 

如何将其转换为

Ma Bhat Khanchu

2 个答案:

答案 0 :(得分:3)

你不想"转换"从一个字符集到另一个字符集。你需要做的是从梵文音译。一个快速的谷歌搜索没有找到一个C#库,但是从wikipedia看起来它应该是相当简单的实现。

您的代码看起来像这样

String Transliterate(map<char,string> table,String input)
{
    StringBuilder builder;
    foreach (char c in input)
    {
       builder.append(table[c]);
    }
    return builder.ToString();
}

使用维基百科或其他来源中列出的映射构建table

答案 1 :(得分:0)

尝试以下方法......

It depends on the encoding of your string ([ASCII][1], [UTF][1]-8, ...).

例如:

byte[] b1 = System.Text.Encoding.UTF8.GetBytes (myString);
byte[] b2 = System.Text.Encoding.ASCII.GetBytes (myString);

为什么编码很重要的小样本:

string pi = "\u03a0";
byte[] ascii = System.Text.Encoding.ASCII.GetBytes (pi);
byte[] utf8 = System.Text.Encoding.UTF8.GetBytes (pi);

Console.WriteLine (ascii.Length); //Will print 1
Console.WriteLine (utf8.Length); //Will print 2
Console.WriteLine (System.Text.Encoding.ASCII.GetString (ascii)); 

//会打印'?'

ASCII根本无法处理特殊字符。

在.NET内部,.NET框架使用UTF-16来表示字符串,因此如果您只想获取.NET使用的确切字节,请使用System.Text.Encoding.Unicode.GetBytes (...).

有关详细信息,请参阅字符Encoding in the .NET Framework (MSDN)