【发布时间】:2015-07-30 15:40:26
【问题描述】:
如何在 C# 中将尼泊尔语 unicode 转换为纯文本?
例如:我有尼泊尔语 unicode
म भात खान्छु
如何转换成
Ma Bhat Khanchu
【问题讨论】:
如何在 C# 中将尼泊尔语 unicode 转换为纯文本?
例如:我有尼泊尔语 unicode
म भात खान्छु
如何转换成
Ma Bhat Khanchu
【问题讨论】:
您不想从一个字符集“转换”到另一个字符集。你需要做的是从梵文音译。快速谷歌搜索并没有找到 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 是根据维基百科或其他来源中列出的映射构建的。
【讨论】:
尝试以下...
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 框架使用UTF-16 来表示字符串,因此如果您只是想获取 .NET 使用的确切字节,请使用System.Text.Encoding.Unicode.GetBytes (...).
请参阅角色 Encoding in the .NET Framework (MSDN) 了解更多信息。
【讨论】: