This is a bug in PrimeFaces MultipartRequest . It uses the default character encoding for the form fields instead of the set set in the HTTP servlet request, as HttpServletRequest#setCharacterEncoding() in your character encoding filter (which I assume was mapped to web.xml before PrimeFaces FileUploadFilter ).
Basically, lines 85 and 88 of MultipartRequest in PrimeFaces 3.3
formParams.get(item.getFieldName()).add(item.getString());
need to change as follows
formParams.get(item.getFieldName()).add(item.getString(getCharacterEncoding()));
I reported this as issue 4266 . At the same time, it is best to manually correct the incorrect string encoding in the bean action method as follows, assuming that the standard encoding of the server platform is ISO-8859-1:
string = new String(string.getBytes("ISO-8859-1"), "UTF-8");
Balusc
source share