Presumably you have an alias for `ls` that's unconditionally adding the `-F` (or `--classify`) option. I would work around that by creating a wrapper function that tests whether the stdout is a terminal or not; only add the `-F` option if the output is a terminal.
function ls {
if [ -t 1 ]
then
command ls -F "$@"
else
command ls "$@"
fi
}
Adjust the other default options as you like.