我需要将unicode字符串转换为unicode字符。
例如:语言泰米尔语
“கமலி”=> 'க', 'ம', 'லி'
我能够剥离unicode字节但是生成unicode字符就成了问题。
byte[] stringBytes = Encoding.Unicode.GetBytes("கமலி");
char[] stringChars = Encoding.Unicode.GetChars(stringBytes);
foreach (var crt in stringChars)
{
Trace.WriteLine(crt);
}
它将结果表示为:
'க'=> 0x0b95
'ம'=> 0x0bae
'ல'=> 0x0bb2
'ி'=> 0x0bbf
所以这里的问题是如何将字符'லி'剥离为'லி'而不分裂 'ல', 'ி'。
因为通过将辅音和元音表示为单个字符而使用c#进行解析使得印度语很自然。
所有我需要分成3个字符。
答案 0 :(得分:12)
要迭代字形,您可以使用StringInfo
类的方法。
基本字符+组合字符的每个组合在.NET文档中称为“文本元素”,您可以使用TextElementEnumerator
迭代它们:
var str = "கமலி";
var enumerator = System.Globalization.StringInfo.GetTextElementEnumerator(str);
while (enumerator.MoveNext())
{
Console.WriteLine(enumerator.Current);
}
输出:
க
ம
லி