유니코드... 👩🚒 (woman firefighter)
👩🚒 (woman firefighter)
무려 네 글자의 유니코드가 합쳐진 콤비네이션 글자.
👩 1F469 "\u{0001F469}" woman
🏻 1F3FB "\u{0001F3FB}" EMOJI MODIFIER FITZPATRICK TYPE-1-2
200D "\u{200D}" ZERO WIDTH JOINER
🚒 1F692 "\u{0001F692}" fire engine
여성+백인살색=>하얀여성
하얀여성 + JOINER + 소방차 => 여성 소방전투요원
유니코드의 콤비네이션이 이렇게 까지 되네요. ㅎ
Swift 기준으로
// 👩🏻🚒 : woman firefighter
let emojiString: String = "👩🏻🚒"
print(emojiString.count)
print(emojiString.unicodeScalars.count)
print(emojiString.utf8.count)
print(emojiString.utf16.count)
print((emojiString as NSString).length)
1 // Swift.String.count => 1글자 이니까.
4 // UnicodeScala => 4개의 유니코드스칼라의 조합이니까.
15 // utf8.count => 4bytes + 4bytes + 3bytes + 4bytes
7 // utf16.count => 2 + 2 + 1 + 2
7 // NSString.length => NSString 내부에는 utf16 으로 저장
유니코드 조합에 대해서는 이해하고 있다고 생각했지만,
새로운 조합법을 만나니 무척 당황스럽네용.
한글자가 한글자가 아닐 수 있다는 것은 알았지만.
(예: 국기)
이런 방식으로 조합해서 새로운 문자를 만들고 있었다는 것은
황당하기도 하고. 새롭기도 하고.
새로 추가된 글자를 지원하지 않는 구버전에서 👩🚒 같이 그릴 수 있는 코드만 그려준다면,
읽을(?) 수도 있고 뭔가 재미있기도 하군요.