> What does "every character" mean? Did it really need to include emojis, for example?
You may be too young to remember, but there was a time when a lot of software had their own way to encode emoji if they supported them. This sucked for interoperability - especially when using common protocols like SMS.
Some of these implementations were essentially find/replace and would turn various strings of characters commonly occurring in code into emoji. Someone reading your mail containing code on their portable device or other weird client would see parts of that code replaced by emoji. Maybe you had to format your code a certain way, inserting spaces tactically, to avoid accidentally ending up with an emoji. I'm glad we put that behind us for the most part.
Living in a world where you can just copy-paste some text containing emoji (or not) from one software into another is honestly great. Same for all these other symbols that may be embedded into text.
If a software has to come up with their own text-embeddable encodings to represent symbols (to allow for copy-paste or sharing) things often end up less than optimal.