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

Langage PHP Discussion :

Encodage accent grave


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Points : 79
    Points
    79
    Par défaut Encodage accent grave
    Bonjour,

    J'ai un soucis avec le stockage de mes accents en base de données. Plutôt classique mais le truc bizarre c'est que ça ne me le fait pas avec tous les accents.

    J'ai un champ nom par exemple dans mon formulaire. Je récupère les paramètres en POST.
    Si je mets "é" et que je regarde $_POST['nom'] j'ai bien "é".
    Par contre si je mets "è", dans $_POST['nom'] j'ai & # 2 3 2 ; (sans les espaces)

    Du coup quand je stocke mes données dans ma base, via un htmlentities($var) il me stocke pour "è" : è'
    Et forcément quand j'affiche mes données avec un echo html_entity_decode($var) il m'affiche & # 2 3 2 ; au lieu de "è"

    Ma page est encodé en charset=windows-1250.
    J'ai bien tenté en charset=utf-8 mais ça n'a pas résolu le problème... ou alors je m'y suis mal pris.

    Si quelqu'un à une idée... Je suis preneur.

    (PS : un autre truc un peu suspect... quand je stocke via htmlentities un "é" il va me stocker é ça c'est normal, mais quand je vais le faire pour "è", il me sort le fameux & # 2 3 2 ; Pourquoi j'ai pas un bon vieux è ???? Pareil pour "à" qui devient & # 2 2 4 ; au lieu de à )

    Merci

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Quel est l'encodage de ton fichier php ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 100
    Points : 100
    Points
    100
    Par défaut
    il me semble que la conversion du latin1 en html est simplifiée par la commande strtr :

    $str = strtr($str,$html_entities);

    (à vérifier)

  4. #4
    Membre régulier Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Quel est l'encodage de ton fichier php ?
    Par encodage du fichier PHP tu veux dire celui de l'éditeur avec lequel je fais le fichier PHP ?

    Si c'est bien ça c'est de l'ISO 8859-2. (avec PSPad)

    Ce qui effectivement n'a rien avoir avec l'encodage de ma page.
    Je suppose que ça évite des problèmes quand ils sont identiques, mais que faire? Changer d'éditeur de texte ou changer l'encodage de ma page?

    Citation Envoyé par pitxu Voir le message
    il me semble que la conversion du latin1 en html est simplifiée par la commande strtr :

    $str = strtr($str,$html_entities);

    (à vérifier)
    Euh... j'ai regardé la doc de la fonction strtr et je ne vois pas trop comment l'appliquer avec ce que tu me dis.
    Soit il faut 3 paramètres, soit il en faut 2 auquel cas le 2ème est un tableau de paire.

    Qu'est ce que tu entends par $html_entities?
    $html_entities = htmlentities($str) ?

    Parce que j'ai essayé ça et ça n'a rien donné.

    Merci.

  5. #5
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Change plutot l'encodage de ta page en ISO 8859-1

  6. #6
    Membre régulier Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Change plutot l'encodage de ta page en ISO 8859-1
    Oui effectivement, j'aurai pu m'en douter

    En tout cas merci, ça fonctionne nickel!

    EDIT : Apparemment le ISO 8859-2 supporte les caractères spéciaux des pays de l'est (ce qui dans mon cas ne va pas me servir beaucoup...) mais pas le ISO 8859-1, qui lui est plus côté ouest.

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

Discussions similaires

  1. [XML] encodage accents pour lecture en html/php
    Par argonath dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/10/2009, 17h24
  2. Réponses: 0
    Dernier message: 08/09/2009, 18h47
  3. [MySQL] Je suis perdu avec les encodages, accents et autres joyeusetés!
    Par fxbrg dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/09/2009, 08h43
  4. Encodage accent dans les dates
    Par Piett dans le forum Général Python
    Réponses: 10
    Dernier message: 01/07/2008, 12h31
  5. Pb d'encodage -> accents
    Par EJ dans le forum Requêtes
    Réponses: 3
    Dernier message: 25/01/2006, 14h25

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