为什么 TextElementEnumerator 不能正确解析泰米尔语 Unicode 字符。
using System;
using System.Collections.Generic;
using System.Globalization;
namespace Glyphtest
{
internal class Program
{
private static void Main()
{
const string unicodetxt1 = "ஊரவர் கெளவை";
List<string> output = Syllabify(unicodetxt1);
Console.WriteLine(output.Count);
const string unicodetxt2 = "கௌவை";
output = Syllabify(unicodetxt2);
Console.WriteLine(output.Count);
}
public static List<string> Syllabify(string unicodetext)
{
if (string.IsNullOrEmpty(unicodetext)) return null;
TextElementEnumerator enumerator = StringInfo.GetTextElementEnumerator(unicodetext);
var data = new List<string>();
while (enumerator.MoveNext())
data.Add(enumerator.Current.ToString());
return data;
}
}
}
以下代码示例处理 Unicode 字符
'கௌ'-> 0x0bc8 (க) +0xbcc(ௌ)。(正确的形式)
'கௌ'->0x0bc8 (க) +0xbc6(ெ) + 0xbb3(ள)(格式正确)
它是Text Element Enumerator Class 中的错误,为什么不从字符串中正确枚举它。
ie கெளவை => 'கெள'+ 'வை' 必须以正确的形式列举
கெளவை => 'கெ' +'ள' +'வை' 不能以不正确的形式列举。
如果是这样如何克服这个问题。