8

我需要将 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 个字符。

4

1 回答 1

13

要遍历字素,您可以使用StringInfo类的方法。

.NET 文档将基本字符 + 组合字符的每个组合称为“文本元素”,您可以使用以下命令对它们进行迭代TextElementEnumerator

var str = "கமலி";
var enumerator = System.Globalization.StringInfo.GetTextElementEnumerator(str);
while (enumerator.MoveNext())
{
    Console.WriteLine(enumerator.Current);
}

输出:

க
ம
லி
于 2012-12-20T07:08:31.130 回答