string - Go 中的 UTF-8 范围表
问题描述
我一直在阅读 unicode Go页面,我想知道范围表的用例是什么。它们可以用来做什么?是否有一个函数可以检索可以找到单个字符的范围。
解决方案
范围表的目的是它是描述一组字符的有效方式。由于字符被添加到 Unicode 标准的方式,具有相似属性的字符通常会一起找到。因此,列出存在特定字符集的范围通常更节省空间,而不是列出每个单独的字符。
这允许您通过执行一系列范围检查来查找给定字符是否存在于特定字符集中。如果字符的 Unicode 代码点在范围表中的任何范围内,则该字符被认为是范围表描述的字符集的一个元素。
没有通用函数来检索可以找到单个字符的范围,因为character -> range
在一般情况下不是唯一的或特别有用的关系。以字母为例A
。它存在于范围内[65, 90]
(ASCII 大写字母),但也存在于范围内[0, 127]
(所有 ASCII 字符),以及范围[9, 9999]
,[60, 70]
等。
如果您想知道一个字符是否在一组特定的范围表中,您可以使用该unicode.In
函数。
package main
import (
"fmt"
"unicode"
)
func main() {
found := unicode.In('A', unicode.Latin)
fmt.Println(found)
}
true
这将检查是否A
存在于任何给定的范围表中unicode.Latin
,或“拉丁语脚本中的 Unicode 字符集”
推荐阅读
- asp.net - 存储在变量中的路径的连接
- ios - 比较 ARWorldMaps
- python - 如何防止使用相同值创建新 SQLAlchemy 对象的 UUID 主键
- java - 是否可以使用 jvm.dll 执行 jar 文件。而不是java.exe?
- php - PHP内核中uninitialized_zval的作用是什么?
- powershell - PowerShell 将输出记录到多个位置
- html - 在 Viber 上关闭内部浏览器
- c# - AWSSDK.Core 需要 AWS_ENABLE_ENDPOINT_DISCOVERY 环境变量值
- android - 以编程方式选择选项卡项
- swift - 如何在 AR 场景中在运行时提取 SceneKit 深度缓冲区?