代码之家  ›  专栏  ›  技术社区  ›  Jim W

使用.NET框架对此泰语字符进行分类

  •  0
  • Jim W  · 技术社区  · 6 年前

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

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

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

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

    查找下一个不是字母或数字的字符。除了像这样的角色外,其他的都可以

    Thai character

    这是这个单词中的第二个字符(我认为这是单词中第一个字符的“上标”)。

    Thai word

    这个字符似乎没有按char类分类,即:

    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)
    

    全部返回 false .

    这个字符可能是一个“音调”——如何使用.NET来识别它?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Sami Kuhmonen    6 年前

    根据Unicode规范,字符是 mai tho 属于__Mark组,非起搏(mn)。

    您可以使用 Char.GetUnicodeCategory() 方法检查类型。对于非间距标记,类型为5,或 UnicodeCategory.NonSpacingMark