UTF8とUTF16は表現が違うだけで空間は一緒やろ
(厳密には一対一ではない)

Shift_JIS と UTF16 とかで変換しようとすると化けたり欠けたりする
WideCharToMultiByte と MultiByteToWideChar の引数は UTF8 だけにするべき