Well it has taken me all day and the solution turns out to be rather simple.

It CANNOT be done with a QStringList because the strings in a QStringList are 16bit per character just as they are in a QString........ Ahhhh... the penny drops.

So the way I have solved it is to create the complete lame command line in a QString....
QString tmp = "lame -b 128 -m j ....... etc etc

Then start the QProcess like this

lame->start(tmp.toUtf8());

and it works fine.