Bonjour,
J'ai un formulaire dans lequel je saisis une chaine de caractères.
Je souhaite remplacer tous les caractères accentués é,è, etc... par e
En effet, à l'affichage cette n'apparait pas correctement...
Merci pour votre aide
Version imprimable
Bonjour,
J'ai un formulaire dans lequel je saisis une chaine de caractères.
Je souhaite remplacer tous les caractères accentués é,è, etc... par e
En effet, à l'affichage cette n'apparait pas correctement...
Merci pour votre aide
j'ai le meme problème ca n'affiche pas les accents mais des points d'interrogation à la place par contre je voudrais que ca les affiche correctement et pas que ca affiche des "e" -_-
j'ai changé et tout mis en utf8.
maintenant j'ai des carrés qui s'affiche a la place des caractères accentués
-_-'
qu'est ce que je peus faire :cry:
il faut utiliser l'encodage suivant:
en version xml des jsp ça donne:
Code:<?xml version="1.0" encoding="ISO-8859-1"?>
j'ai fais ca:
j'ai ausi ajouté une classe filtre, mais j'ai l'impression qu'il ne l'utilise pas vu qu'il n'ecrit pas dans la console mes traces:Code:
1
2
3 <%page language="java" contentType="text/html, charset= ISO-8859-1" pageEncoding="ISO-8859-1"%>
et dans le web.wml j'ai fais ceci:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public class UTF8EncodingFilter implements javax.servlet.Filter { public void init(FilterConfig filterConfig) throws ServletException { // This would be a good place to collect a parameterized // default encoding type. For brevity, we're going to // use a hard-coded value in this example. } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { // Specify the encoding to assume for the request so // the parameters can be properly decoded/. // request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("ISO-8859-1"); System.out.println("hekhfhezfkezknjfref: "+request.toString()); filterChain.doFilter(request, response); } public void destroy() { // no-op }
dans la base les données sont en latin1_swedish, je vois pas ce que je pe faire de plus :(Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <description>passe du utf8 vers du iso</description> <filter-name>utf8versIso</filter-name> <filter-class>com.myapp.struts.UTF8EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>utf8versIso</filter-name> <servlet-name>action</servlet-name> <dispatcher>REQUEST</dispatcher> </filter-mapping>
pourquoi tout ça :roll: juste pour afficher les accents ??
je ne penses pas que tu aies besoin de faire tout ça..il faut le définir l'encodage dans la jsp..
ben j'ai vu ca dans les forums, il disait qu'il fallait faire ce filtre ..
De toute facon tu vois bien que je l'ai défini dans la jsp et toujours rien soit c'est des carré soit des "?", j'en ai marre :cry:
essaye ça dans le head:
Code:<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
j'ai déjà mis ca dans le head :(
et ça marche toujours pas? :roll:
Tu as quel IDE ?
Sous Eclipse j'ai résolu le problème de la façon suivante :
Clique droit sur ton projet -> propriétés et là dans text file encoding tu mets others UTF-8
Tu valides.
Tu vas sur tes page jsp et tu clique droits pour vérifier le bon encodage.
Ensuite tu met cela dans les en-têtes des pages jsp :
<%@ page contentType="text/html;charset=UTF-8" ....
Ensuite dans ton ActionForm tu mets cela :
et là pour moi tout fonctionne après.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 /** * @author * @param mapping * @param request * @version v1.0.0 * Encode la request en UTF-8 pour éviter bugg des accents */ public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub try { request.setCharacterEncoding("UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } super.reset(mapping, request); }
J'éspère que cela t'aidera.
Bon courage ++
J'avais le même pb et j'avais fait tout ça.
Je confirme que ça marche :)
La méthode décrite par Cosmos m'a bien aidé aussi.
Est-ce que quelqu'un sait comment faire pour l'implémenter sur un DynaActionForm ??
Le DynaActionForm est seulement défini dans le struts-config, je ne sais pas comment accéder à sa méthode reset..
Je trouve que ça concerne le même sujet.