在c#中将Unicode字符串转换为unicode字符用于印度语言

aru*_*cii 8 .net c# unicode tamil .net-2.0

我需要将unicode字符串转换为unicode字符.

例如:语言泰米尔语

"கமலி"> 'க', 'ம', 'லி'

我能够剥离unicode字节,但生成unicode字符成为问题.

byte[] stringBytes = Encoding.Unicode.GetBytes("????");
char[] stringChars = Encoding.Unicode.GetChars(stringBytes);
foreach (var crt in stringChars)
 {
     Trace.WriteLine(crt);
 }
Run Code Online (Sandbox Code Playgroud)

它给出了结果:

'க'=> 0 x0b95

'ம'=> 0 x0bae

'ல'=> 0 x0bb2

'ி'=> 0 x0bbf

所以这里的问题是如何将字符'லி'剥离为'லி'而不像'ல','ி'那样分裂.

因为它通过将辅音和元音表示为单个字符而使用c#解析而使用印度语是很自然的.

所有我需要分成3个字符.

por*_*ges 13

要迭代字形,您可以使用StringInfo该类的方法.

基本字符+组合字符的每个组合在.NET文档中称为"文本元素",您可以使用以下命令迭代它们TextElementEnumerator:

var str = "????";
var enumerator = System.Globalization.StringInfo.GetTextElementEnumerator(str);
while (enumerator.MoveNext())
{
    Console.WriteLine(enumerator.Current);
}
Run Code Online (Sandbox Code Playgroud)

输出:

?
?
??
Run Code Online (Sandbox Code Playgroud)