UNICODE is 16 bit, and probably as little endian(or check for endianess).
if i am not wrong you receive them as byte stream. Transfer them wchar_t type. but I am not sure if this is the problem.
Another thing If you store data as UTF-8 only then you can read as UTF-8. If you want to transfer UTF-8 to UTF-16 then use
mbstowcs function
before you start retrieving data you should select the encoding type:
SET NAMES 'charset_name' [COLLATE 'collation_name'];
For more information please read the following
link[
^]