IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

remplacer les caractères spéciaux


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut remplacer les caractères spéciaux
    Bonjour,

    Je suis nouveau en jsp et j'ai une page qui me retourne des choses de ce genre � à la place des caractères spéciaux.

    Exsite t'il une fonction comme htmlentities en php qui remplace les caractères tout seul ?

    Merci

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    De quels caractères spéciaux tu parles ?
    Il me semble que "�" est le caractère de substitution utilisé lorsque le code n'existe pas dans l'encodage spécifié..

    Ce ne serait pas un problème d'encodage ?

    a++

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui c'est un problème d'encodage mais je ne peux pas changer l'encodage de la page. Par contre, je peux remplacé les caractères spéciaux par leur équivalent en code html. Par exemple é -> é

    N'y-t'il pas de fonction qui fasse cela ?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Par curiosité : quel est l'encodage de la page ?


    Pour la conversion en entité HTML il n'y a rien de tel en standard, mais il existe plusieurs codes faisant cela...


    a++

  5. #5
    Invité
    Invité(e)
    Par défaut
    Sauf erreur, la page est encodée en iso-8859-1 alors qu'elle devrait être en utf-8

    Il faut que je créer une fonction c'est ça ?

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par babastutz Voir le message
    Sauf erreur, la page est encodée en iso-8859-1 alors qu'elle devrait être en utf-8
    L'iso-8859-1 comporte bien le caractère "é" et tu n'as donc pas besoin de le convertir...

    D'où vient ta chaine de caractères ? Il y a de forte chance que le problème viennent de la lecture de cette chaine...

    Citation Envoyé par babastutz Voir le message
    Il faut que je créer une fonction c'est ça ?
    Oui ce n'est pas dur à faire avec les regexp, en particulier si tu contentes des entité numérique (& #233; à la place de é) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    	public static String htmlEntities(final String original) {
    		// On recherche tous les caractères non-ASCII
    		final Matcher m = Pattern.compile("[^\\p{ASCII}]").matcher(original);
    		if (m.find()) {
    			// On crée un buffer qui contiendra la nouvelle chaine
    			final StringBuffer sb = new StringBuffer(original.length());
    			do {
    				// On récupère le caractère :
    				int c = m.group().charAt(0);
    				// On le transforme en entité HTML numérique :
    				String rempl = String.format("&#%d;", c);
    				// Et on effectue le remplacement :
    				m.appendReplacement(sb, rempl);
    			} while (m.find());
    			// On colle la fin de la chaine :
    			m.appendTail(sb);
    			// Et on retourne le résultat :
    			return sb.toString();
    		}
    		// Sinon (aucun char non-ascii)
    		// on retourne la chaine recu :
    		return original;
    	}
    Mais non seulement cela semble inutile, mais si ta chaine en entrée est incorrect, cela ne marchera pas...

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer les caractères spéciaux dans xml
    Par panda31 dans le forum Développement de jobs
    Réponses: 14
    Dernier message: 19/10/2011, 09h53
  2. Remplacer les caractères spéciaux dans un prénom(Regex)
    Par sajodia dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 17/05/2011, 17h19
  3. remplacer les caractères spéciaux
    Par DeveloppeurWeb dans le forum VB.NET
    Réponses: 9
    Dernier message: 24/02/2011, 11h51
  4. remplacer les caractéres spéciaux
    Par vanesa dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 13/04/2009, 15h46
  5. Réponses: 3
    Dernier message: 18/02/2008, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo