Encodage caractères spéciaux + EJB
Bonsoir tout le monde
Je développe une application web EJB 3 avec base de donnée Mysql.
J'ai suivi toutes les étapes nécessaires pour la gestion des caractères spéciaux (je pense :p):
Code:
<?xml version='1.0' encoding='UTF-8' ?> dans mes pages XHTML
Création de la classe EncodingFilter
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.negsyst.encoding;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*
* @author FFOKOU
*/
public class EncodeFilter implements Filter {
@SuppressWarnings("unused")
private FilterConfig filterConfig = null;
@Override
public void destroy() {
this.filterConfig = null;
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException {
// Setting the character set for the request
request.setCharacterEncoding("UTF-8");
// pass the request on
chain.doFilter(request, response);
// Setting the character set for the response
response.setContentType("text/html; charset=UTF-8");
}
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
} |
Déclaration de filter dans le fichier web.xml
Côté base de donnée Mysql le Charset est bien UTF8 Collation "utf8_general_ci"
Jusque là tout va bien. Les caractères spéciaux sont bien gérés et enregistrés dans ma base de données.
Les choses dégénèrent quand je fait un "insert" directement à partir du tier "EJB" et non plus à partir de mes interfaces dans le "WAR".
Les caractères spéciaux sont alors transformé
Code:
"ééééé ((ç êaaa" devient "ééééé ((ç êaaa"
Comment appliquer le "filter" côté serveur?
Merci d'avance, bonne soirée