The difference is that text files may only contain printable
character codes, either from the ASCII character set or the UNICODE
character set. That is, letters, digits, punctuation, space, tab
and other symbols, including line feed or carriage return/line feed
pairs. Non-printable characters, such as the null character '\0'
(or '\0\0' in UNICODE), are not permitted in plain-text files,
however UNICODE files permit a 16-bit endian marker at the start of
the file to denote the byte order of the wide characters that
follow.
Text files can be displayed in any plain-text editor or word
processor (as unformatted text). The entire text can also be
extracted as a string (memory permitting), or as a stream of
printable characters in a string buffer.
Binary files, on the other hand, cannot be interpreted as
plain-text (although they may contain plain text elements). Binary
files may contain any combination of bytes, and require special
handling in order to be interpreted correctly. The exact meaning of
the order of the bytes is entirely dependent upon the program that
created the binary files in the first place.