Yes, specifying fieldnames works, and worked yesterday too, I forgot to mention it.
To close this out:
My goal is to accept a random file, generated by extract from a database, and load it into Solr.
Database extract comes with fields aligned, hence the white space in the header and values.
I do not know the fieldnames ahead of time, so I was hoping to specify header=true&trim=true and have Solr take care of parsing.
This proved not to work.
Since I have to massage the data anyway to remove spaces, I might as well parse out the header line at the same time using sed and construct fieldnames variable.
I also found that I need <dynamicField name="*" type="string" multiValued="true" /> since I do not know header up front, and can't rely on _s etc, and it wouldn't work otherwise.
This is the workaround.
My opinion is: 'trim' should be true by default, and certainly apply to both data and header, although I understand it would break backward-compatibility.
Thanks again for your help.