I don't see the harm in UTF-8 percent encoding the semi-colon in query parameters in all cases. If there is such a downside, then there at least needs to be a way to customize the behavior in order to properly interact with such servers.
A more ambitious change would be to UTF-8 Percent encode all of the characters noted as part of the userinfo encode set in the html5 URL spec https://url.spec.whatwg.org FWIW, I could not find any html5 recommendations about using the semi-colon similar to the one referenced above.
The character rules in HierarchicalUriCompoments.Type are driven by the URI spec and follow the syntax from appendix A (this is also mentioned in the Javadoc by the way). As per the spec, the query can contain pchar which includes sub-delimiters and that includes ";". In short it is a legal character in query parameters.
The RestTemplate has a UriTemplateHandler strategy whose default implementation offers a "strictEncoding" property. You can do something similar applying UriUtils.encode(value, "UTF-8") to each value and also using the build method with the encoded flag to prevent further encoding (for example when toUri() is called and also if encode() is called explicitly):
We could also expose this as an additional build method on UriComponentsBuilder that can apply the same strict encoding of URI variable values (as the DefaultUriTemplateHandler does) and then build with encoded=true and expand: