Ok, but in practice, what does this mean for the characters? Are there certain characters unavailable?
WTF-8 is necessary for Rust’s compatibility with Windows filesystems (it underlines OsString on Windows) as e.g. file names are sequences of UTF-16 code units (and thus may contain unpaired surrogates).