In our product, we invoke the Odata endpoint of a different service, it uses an CSRF nonce.
So in one post requset, two thing happen, Fetch the CSRF nonce and Post the actual request.
Here on processing the response of Fetch, it sets the charset from IOHelper.getCharsetFromContentType. If there is no charset in the response header Content-Type, then UTF-8 is set to default.
Thus this charset gets put on the exchange object. and used further in the post request.
But when we are creating a request entity. in HttpProducer.createRequestEntity
The default charset it uses is ISO-8859-1 which is correct as per HTTP 1.1 standard.