为什么像 👩👩👧👦 这样的 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` 之间有什么区别?提前感谢你的帮助!
<<>>