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

PHP & Base de données Discussion :

Mauvais encodage (probleme de caractere speciaux) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Par défaut Mauvais encodage (probleme de caractere speciaux)
    Bonjour,

    Mon programme permet de recuperer des informations sur une page html.
    Je recupere une date sous forme 01 aout 2009, mais le probleme est dans le mois car le fichier html a été traité donc il y a des caracteres speciaux au lieu d'avoir é ou ù il y a des Ȩ ou È©

    Mon code actuel :
    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
     
    switch($mois)
    {
    	case "janvier":  $mois = "01";break;		
    	case "febrier":  $mois = "02";break;
    	case "mars":  	 $mois = "03";break;
    	case "avril":  	 $mois = "04";break;
    	case "mai":  	 $mois = "05";break;
    	case "juin":  	 $mois = "06";break;
    	case "juillet":  $moi = "07";break;
    	case "aout":  	 $mois = "08";break;
    	case "septembre":$mois = "09";break;
    	case "octobre":  $mois = "10";break;
    	case "novenbre": $mois = "11";break;
    	case "decenbre": $mois = "12";break;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date = $jour."/".$mois."/".$annee;
    La valeur du mois dans le fichier html est aoÈ©t donc date = 01/ao权t/09 dans mon navigateur.

    je voudrais dans le switch faire une chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    switch($mois)
    {
    	case "janvier":  $mois = "01";break;	
    	case "f(.*)brier":  $mois = "02";break;
    	case "ao(.*)t":  	 $mois = "08";break;
    }
    Mais cela ne marche pas.

    Merci de votre aide
    tortue

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le fichier HTML que tu lis est visiblement écrit en UTF8 alors que ta page est ecrite en ISO-8859.
    Tu peux utiliser utf8_decode() pour faire la conversion.

    car le fichier html a été traité donc il y a des caracteres speciaux au lieu d'avoir é ou ù il y a des Ȩ ou È©
    En fait un caractère spécial ca ne veut finalement pas dire grand chose : dans ta page à toi aussi le "é" est encodé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Par défaut
    merci pour la fonction mais la page html vient par mail et je récupère le fichier en pièce jointe en perl donc je vois pas comment l'utiliser.

    Et désolé pour l'expression caractères spéciaux mais on trouve plus de solutions sur le net en mettant caractère spéciaux.

    Mais j'arrive pas à trouver comment faire pour que dȨcembre devient decembre car je récupère dȨcembre dans le fichier html pour le traiter dans une page php.

    merci d'avance
    tortue

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as essayé avec utf8_decode() ?

    Pour "caractères spéciaux" ce n'etait pas une critique.
    On désigne souvent comme cela d'une part les caractères qui posent souvent problème a l'affichage, d'autre part les caractères qui ont aussi une signification dans le langage de programmation.
    Mais au final informatiquement parlant, un "é" n'est pas plus spécial qu'un "e" ; la seule différence est que le "e" est encodé de la même façon dans plusieurs encodage et donc passe partout.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Par défaut
    je ne l'avais pas pris comme une critique, il est vrai que tu as raison sur ce point. Il faut que je perde cette habitude de dire caracteres speciaux.

    oui j'ai essayé la fonction :

    mais il y a une erreur de ce type
    Parse error: syntax error, unexpected $end in fonction.php on line 164

    J'ai regardé le type du paramètre de la fonction c'est un string mais la valeur mois = 'dȨcembre'; est un string aussi.

    tortue

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Unexpected end c'est souvent un problème de boucle mal fermée.
    Si tu ne trouves pas, montre-nous ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [Débutant] Problème de caractères spéciaux
    Par chaabane dans le forum Mise en forme
    Réponses: 4
    Dernier message: 21/08/2007, 23h22
  2. Problème de caractères spéciaux
    Par cflo91 dans le forum Mise en forme
    Réponses: 9
    Dernier message: 14/08/2007, 15h02
  3. Probleme avec caractere speciaux
    Par blairswish dans le forum Langage SQL
    Réponses: 9
    Dernier message: 16/12/2006, 22h47
  4. [HQL]Problème quand caractères spéciaux.
    Par Dimitri S. dans le forum Hibernate
    Réponses: 2
    Dernier message: 25/10/2006, 16h48
  5. [Encodage] codage des caractères spéciaux
    Par soulhouf dans le forum Général Java
    Réponses: 11
    Dernier message: 24/08/2005, 12h07

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