Actually I've come up with this, which seems to at least given a matching string.
But the reason I am doing this, is for a SimplePie feed (believe there is no more support there).
$ua2 = "$ua";
$ua2 = str_replace('%2F', '/', $ua2);
$ua2 = str_replace('%3B',';',$ua2);
$ua2 = str_replace('%3A', ':', $ua2);
$ua2 = str_replace('+' , '%20' , $ua2);
And to my utter amazement, even when the output of a test string exactly matches one that is character entered (which succeeds), the request fails.
Given what I am faced with, which does not make sense, I don't know if there is anything else I can do with this.