Avatar ·

为什么像 👩‍👩‍👧‍👦 这样的 emoji 序列在 Swift 字符串中表现奇怪?

你好!我是 Swift 新手,正在尝试处理包含 emoji 的字符串。我遇到了一个非常奇怪的行为,以家庭 emoji 👩‍👩‍👧‍👦(两个女人、一个女孩和一个男孩)为例。在 Xcode 中,我写了一个简单的代码: ```swift let family = "👩‍👩‍👧‍👦" print("字符数: \(family.count)") print("UTF-8 表示: \(Array(family.utf8))") print("第一个字符: \(family.first!)") ``` 得到的输出是: ``` 字符数: 1 UTF-8 表示: [240, 159, 145, 169, 226, 128, 141, 240, 159, 145, 169, 226, 128, 141, 240, 159, 145, 167, 226, 128, 141, 240, 159, 145, 166] 第一个字符: 👩 ``` 我原本期望 `count` 显示 4(因为图片上有四个人),但看到的是 1。同时 `first` 只返回第一个元素,而不是整个家庭。为什么会这样?如何正确处理这种复合 emoji?`count`、`utf8.count` 和 `unicodeScalars.count` 之间有什么区别?提前感谢你的帮助! <<>>

理解 Swift 中的 Unicode