What makes grep consider a file to be binary?

I have some database dumps from a Windows system on my box. They are text files. I’m using cygwin to grep through them. These appear to be plain text files; I open them with text editors such as notepad and wordpad and they look legible. However, when I run grep on them, it will say binary file foo.txt matches.

Grep in couple thousands files

I have directory with cca 26 000 files and I need to grep in all these files. Problem is, that I need it as fast as possible, so it’s not ideal to make script where grep will take name of one file from find command and write matches to file. Before “arguments list too long” issue it took cca 2 minutes to grep in all this files.
Any ideas how to do it?
edit: there is a script that is making new files all the time, so it’s not possible to put all files to different dirs.

How do I append/prepend a timestamp to grep output?

I am running a small linux server at home, and I am writing a script to log the temperature of the CPU cores every 5 seconds, but I need timestamps for it to be useful. So far I have something that saves the output of the sensors command into a file, and I have a command that prints the date and time. I just need to figure out how to combine those two.