I did the following test on Unity and found that even if I don't encode special characters on the URL, the actual URL sent is encoded, is this done inside UnityWebRequest?
string url = $"http://test.api.com/path?key1=__ __&key2=__&__";
UnityWebRequest.Get(url).SendWebRequest();
// Charles Get http://test.api.com/path?key1=__%20__&key2=__&__
// If I encode the parameter
var value1 = UnityWebRequest.EscapeURL("__ __");
var value2 = UnityWebRequest.EscapeURL("__&__");
UnityWebRequest.Get($"http://test.api.com/path?key1={value1}&key2={value2}").SendWebRequest();
// Charles Get http://test.api.com/path?key1=__+__&key2=__%26__