UTF-8 is far more compact than UTF-16. UTF8 is a variable length encoding
whose greatest points are to reuse the same encoding for ASCII and to save
space for Western encodings, but it is a bit more complex to handle in
practice. UTF-16 use 2 bytes per characters (and sometimes combines two
pairs), it makes implementation easier, but looks a bit overkill for Western
languages encoding and take twice of memory than UTF-8.