Why emoji sequences like 👩👩👧👦 behave strangely in Swift strings?
Hi! I'm new to Swift and trying to understand string handling with emoji. I encountered very strange behavior with the family emoji 👩👩👧👦 (two women, a girl, and a boy). In Xcode, I wrote simple code:
```swift
let family = "👩👩👧👦"
print("Number of characters: \(family.count)")
print("UTF-8 representation: \(Array(family.utf8))")
print("First character: \(family.first!)")
```
And got the output:
```
Number of characters: 1
UTF-8 representation: [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]
First character: 👩
```
I expected `count` to show 4 (since the image shows four people), but I see 1. Meanwhile, `first` returns only the first element, not the whole family. Why is this happening? How to properly work with such composite emoji? What is the difference between `count`, `utf8.count`, and `unicodeScalars.count`? Thanks in advance for your help!
<<>>
Understanding Unicode in Swift
No answers yet.
Log in to leave an answer