gpt4 book ai didi

ios - 检查字符的 Unicode 值范围

转载 作者:可可西里 更新时间:2023-11-01 05:56:27 24 4
gpt4 key购买 nike

在 Objective-c 中...

如果我有一个像“∆”这样的字符,我如何获取 unicode 值,然后确定它是否在某个值范围内。

例如,如果我想知道某个字符是否在 U+1F300U+1F6FF 的 unicode 范围内

最佳答案

NSString 使用 UTF-16 在内部存储代码点,因此那些在您要查找的范围内的代码点(U+1F300U+1F6FF) 将被存储为 surrogate pair (四个字节)。尽管有它的名字,characterAtIndex:(和 unichar)并不知道代码点,并且会给你它在你给它的索引处看到的两个字节( >55357 您看到的是 UTF-16 代码点的主要代理

要检查原始代码点,您需要将字符串/字符转换为 UTF-32(直接对它们进行编码)。为此,您有几种选择:

  1. 获取构成代码点的所有 UTF-16 字节,并使用 this algorithmCFStringGetLongCharacterForSurrogatePair将代理对转换为 UTF-32。

  2. 使用 dataUsingEncoding:getBytes:maxLength:usedLength:encoding:options:range:remainingRange: 转换 NSString转换为 UTF-32,并将原始字节解释为 uint32_t

  3. 使用类似 ICU 的库.

关于ios - 检查字符的 Unicode 值范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14822793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com