Normally when you open a stream in text mode, the stream assumes certain things and behaves differently than when opened in binary mode. For example, in text mode null chars could be considered the end of a line, or even an error! Binary files, on the other hand, can have pretty much anything in them.
When you read a file in binary mode, you obtain the data in chunks in a byte array (an array of char, usually). You can examine this array to determine if there are null chars that prevent you from correctly interpreting the data as text, and if there are, you can replace them. Once you do, you are free to reinterpret the data as a string (provided you do have a trailing null char!).