It probably has something to do with the code page or character set used in Visual Basic. As I don't have a Chinese OS, I cannot test this. Your OS most probably uses Unicode (an encoding format not supported via HTTP).

For text files, the majority of characters will be within the extended ASCII range (<255). I would imagine what is happening with binary files, is that as each character is represented by 2 bytes instead of 1, the high order byte is being truncated and hence lost.

Have a look at this unicode FAQ posted by Merri.

http://www.vbforums.com/showthread.php?t=365738

In any case, I recommend that you convert all the strings to UTF-8 (the extended ASCII equivalent of Unicode) as this will ensure characters with codes above 256 are handled properly by the server.
My recommendation is that you convert the data to UTF-8 encoding.