使用 .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
我正在尝试根据此处解释的规则解析一些泰语文本 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