The Unicode character set contains somewhat over one million code points from 0 to hex 10ffff. That wasn’t always so. Unicode started out with only 16 bit characters, or about 65000 code points. At some point it was decided that that wasn’t enough and the version 2.0 released in 1996 switched to the larger character set.
If you want the full Unicode support, it is more than a bit messy. Mozilla has some suggestions how to work around this problem which surfaces especially in regular expressions. Thats all rather ugly, but at least it can be done.