I also think juce_win32_Network.cpp should change. The encoded URL is passed in, but then it is decoded by InternetCrackUrl before it is passed to HttpOpenRequest. I think the url should be passed to HttpOpenRequest in encoded form.
I’m not sure about ftp, ftp should probably get the url unencoded.
Actually, I just checked this and it does already seem to be doing the right thing… Any encoded parameters in the path are still correctly encoded when they reach the HttpOpenRequest stage. Maybe I didn’t quite follow what you’re saying?