I have a file X which contains ASCII text, but also in some lines German umlaut characters. The file is classified as: $ file X X: ISO-8859 text, with CRLF line terminators If I grep the file using, say, $ grep . X >Y (i.e. select every non-empty line and write the result to Y), this works fine, if LANG is set to one of: UTF-8, C, C.de_DE, C.en_EN, en_EN, de_DE. However, if LANG is set to C.UTF-8, two things happen: - grep classifies the file as binary file and produces the error message "Binary file X matches" - Both the grepped lines (i.e. in our example the non-empty lines) AND the error message end up in the standard output (i.e. in file Y). IMO, there are several problems with this: 1. It's hard to see, why an umlaut character makes the file X binary under encoding C.UTF-8, but not under encoding UTF-8 or C.en_EN 2. If grep classifies a file as binary, I think the desired behaviour would be to NOT produce any output, unless the -a flag has been supplied. 3. If grep writes a message "Binary file ... matches", this message should go to stderr, not stdout. The stdout is supposed to contain only a subset of the input lines. Ronald