使用 .NET 框架对这个泰国字符进行分类

Categorizing this Thai character using the .NET framework

我正在尝试根据此处解释的规则解析一些泰语文本 http://www.thai-language.com/ref/spacing

基本上,我想查找空格和标点符号之间的字符串,类似于我们在英语中的做法。我意识到泰语中的单词本身不一定由空格分隔,没关系。

为了解析文本,我尝试简单地循环,比如

while( Char.IsLetterOrDigit(theText[i++]) ) {}

查找下一个不是字母或数字的字符。这适用于某些字符,例如这个

which is the second character in this word(我认为是字符 'superscripting' 这个词的第一个字符)。

这个字符似乎没有被 Char class 归类为任何东西,即:

Char.IsLowSurrogate((char)3657)
Char.IsPunctuation((char)3657)
Char.IsWhiteSpace((char)3657)
Char.IsSymbol((char)3657)
Char.IsSeparator((char)3657)
Char.IsDigit((char)3657)
Char.IsControl((char)3657)
Char.IsLetter((char)3657)
Char.IsSurrogate((char)3657)

全部returnfalse.

这个字符可能是 'tone' - 如何使用 .NET 识别它?

根据 Unicode 规范,字符是 mai tho 并且在组“mark, nonspacing (Mn)”中。

您可以使用 Char.GetUnicodeCategory() method to check the type. For non-spacing marks the type is 5, or UnicodeCategory.NonSpacingMark