if there is binary string (like '\x00\x46  \xFE') in the source file, we can't directly decode with enc, the safest way is still to read from source string.