I'm trying to grep an old irc log by "cat ~/irclogs/old/#ocremix.log | grep '+'" but this returns 'Binary file (standard input) matches' instead of grepping it. I can't think why since the cat output itself is normal. The only thing that sets them apart is that they were created by a Windows application so I assume there's some encoding difference. Is there any way to fix this?
The grep -a, --text option may be of use to you. This will force grep to actually print the contents of the file.
If you are looking to fix the actual file, I would say open it up in an editor and resave it and see what that does.
On a sidenote: why 'cat file | grep ...'?? Use 'grep .... file'.