I would expect that setting the charset media type parameter in the accept header would cause that charset to be selected. However, content negotiation appears to consider only the Accept-Charset header and not the charset media type parameter within the Accept header.
Note that Apache appears to honor the charset media type parameter within the Accept header:
"Browser indicates preference with the Accept-Charset header field. Each item can have a quality factor. Variants can indicate a charset as a parameter of the media type. "
Also, some one MS OData implementation consider it as well, even giving it priority over the Accept-Charset header. (See ODataMessageWriterSettings.SetContentType and ODataUtils.SetHeadersForPayload.)