Simple, pure ASCII only covers the byte range from 0 to 127, which will not run you into trouble when using UTF-8. The bytes from 128 to 255 are considered extended ASCII and the characters depend on the code page if you use code pages like ISO8859. BUT UTF-8 uses several of these bytes for code point specifics, so EASCII is NOT compatible with UTF-8.
Also, Unicode has nothing to do with characters. It is only a definition of codepoints that can be encoded into characters by UTF-8, UTF-16 or UTF-32.
While UTF-8 is ASCII compatible, UTF-16 and UTF-32 are not, because the first always uses two bytes for a codepoint and sometimes four in case of surrogate pairs, while the latter always uses four bytes.
So unlike what I read in previous posts here, UTF16 ASCII doesn't exist. So why would you want to convert (UTF-8) to wide string in order to get ASCII?