UTF-8 can also be handled in several ways. There is a lot of middle ground between software that handles bytes, and typesetting software which is fully unicode-aware.
The small unix utilities fall somewhere in there.
UTF8 can not be handled in several ways without breaking it, it's a pretty straightforward and strict encoding.