Agreeing with @Wonka. Postman recognizes special characters and encodes the & immediately to %26. When the request is sent postman then encodes %26 again like normal parameter encoding.
So to achieve the same behavior you need to replace the & "Test Data O&G Upstream - NA & Europe" with %26 -> "Test Data O%26G Upstream - NA %26 Europe" and then pass this to the URLEncoder.