Text and string processing is a subject that looks easy at first, but becomes tremendously complicated the more you look into it. Unicode is the modern standard for computer text processing, and it's full of complexity. In this talk, we'll take a deep look at Unicode's history, design, and structure. You'll learn about code points, code units, combining characters, normalization, emoji, UTF-8, UTF-16, and UTF-32. With this foundation in place, we'll bring it all back to practical applications by seeing how it fits in with Swift's powerful but sometimes complicated String API.