代码之家  ›  专栏  ›  技术社区  ›  Dubby

Golang中的UTF-8范围表

  •  0
  • Dubby  · 技术社区  · 5 年前

    我一直在读unicode Go page 我想知道范围表的用例是什么。它们可以用来做什么?是否有一个函数可以检索单个字符所在的范围。

    1 回复  |  直到 5 年前
        1
  •  3
  •   blackgreen VonC    5 年前

    范围表的目的是,它是描述一组字符的有效方法。由于字符被添加到Unicode标准中的方式,具有相似属性的字符通常会被放在一起。因此,列出 范围 其中存在一组特定的字符,而不是列出每个单独的字符。

    这允许您通过执行一系列范围检查来查找特定字符集中是否存在给定字符。如果字符的Unicode代码点在范围表中的任何范围内,则该字符被视为范围表所描述的字符集的元素。

    没有一个通用函数可以检索单个字符所在的范围,因为 character -> range 在一般情况下,不是一种独特的或特别有用的关系。例如,以字母为例 A 。它存在于范围内 [65, 90] (ASCII大写字母),但它也存在于范围中 [0, 127] (所有ASCII字符),以及范围 [9, 9999] , [60, 70]

    如果你想知道一个角色是否在 一组特定的范围表 ,您可以使用 unicode.In 作用

    Example:

    package main
    
    import (
        "fmt"
        "unicode"
    )
    
    func main() {
        found := unicode.In('A', unicode.Latin)
        fmt.Println(found)
    }
    
    true
    

    这将检查是否 A. 存在于任何给定的范围表中 unicode.Latin ,或“脚本拉丁语中的Unicode字符集”