Questo è un problema noto da PrimeFaces 3.0. È causato da un cambiamento nel modo in cui controlla se la richiesta HTTP corrente è una richiesta Ajax. È stato identificato da un parametro di richiesta anziché da un'intestazione di richiesta. Quando un parametro di richiesta viene recuperato per la prima volta prima che la vista JSF venga ripristinata, tutti i parametri di richiesta verranno analizzati utilizzando la codifica dei caratteri predefinita del server, che è spesso ISO-8859-1 invece della codifica dei caratteri predefinita di JSF UTF-8. Per una spiegazione approfondita, vedere Unicode input retrieved via PrimeFaces input components become corrupted.
Una delle soluzioni è creare un filtro che fa un request.setCharacterEncoding("UTF-8")
.
@WebFilter("*.xhtml")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
// ...
}
Si sta caricando un file durante l'invio? Ho sviluppato app in lingua ceca e questo mi è successo con il componente di caricamento file IceFaces. Ma nei casi normali andava tutto bene. Puoi usare Filter per impostare il charset Finlandese ma è ancora un errore strano –