 <p>When no charset is defined in the content-type header of your HTTP request, resteasy assumes 'charset=US-ASCII'. See org.jboss.resteasy.plugins.providers.multipart.InputPart:</p> <pre><code>/** * If there is a content-type header without a charset parameter, charset=US-ASCII * is assumed. * &lt;p&gt; * This can be overwritten by setting a different String value in * {@link org.jboss.resteasy.spi.HttpRequest#setAttribute(String, Object)} * with this ("resteasy.provider.multipart.inputpart.defaultCharset") * String`enter code here` as key. It should be done in a * {@link org.jboss.resteasy.spi.interception.PreProcessInterceptor}. * &lt;/p&gt; */ </code></pre> <p>So, as a work-around you can do the following:</p> <pre><code> @Provider @ServerInterceptor public class CharsetPreProcessInterceptor implements PreProcessInterceptor { @Override public ServerResponse preProcess(HttpRequest request, ResourceMethod method) throws Failure, WebApplicationException { request.setAttribute(InputPart.DEFAULT_CHARSET_PROPERTY, "charset=UTF-8"); return null; } } </code></pre>