reading a char may or may not be the same as reading a byte if the file is saved as unicode.

I (and C/C++) usually define char as a unsigned __int8 so a char is a byte (unless you're really crazy and have 9 bit bytes or something). A unicode character is not a char.