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 :

test simple avec résultat inattendu [Encodage]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Par défaut test simple avec résultat inattendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    header('content-type: text/html; charset=utf8');
     
    echo "<form action='' method='POST'>";
    echo "<input type='text' name='test'>";
    echo "<input type='submit' value='ok'>";
    echo "</form>";
    echo $_POST['test'] . "<br />"; // renvoie é avec test = (&#)233; sans les parenthèses
     
    $char = "é";
    $int = ord($char);
    echo $int; // renvoie 195 et non 233!
    ?>
    Ce test me laisse perplexe!
    Comment un é dans le même script peut-il avoir deux définitions (195 et 233)?!

  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
    Ton script est en UTF8, ord() fonctionne avec de l'ASCII.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Par défaut
    N'y a-t-il pas une fonction qui me donne la valeur des caractères au dessus de 128 ?
    Pour le moment, je n'ai pas trouvé d'autre solution que de rentrer manuellement les équivalences avec
    $arr = array("é" => "233", "à" => "224" etc...) avec &# avant les nombres
    pour l'utiliser après avec
    strtr($valeur_a_modifier,$arr);

  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
    Dans la documentation de ord() tu as des exemples pour obtenir la meme chose en UTF8.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Par défaut
    Merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/05/2010, 18h08
  2. résultats inattendu avec jointure
    Par bmarcellin71 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/09/2009, 17h59
  3. Un petit test simple avec les iterator STL
    Par philmor34 dans le forum SL & STL
    Réponses: 4
    Dernier message: 17/11/2008, 11h59
  4. Réponses: 14
    Dernier message: 25/07/2006, 22h28
  5. résultat inattendu avec acCmdPrint
    Par stigma dans le forum Access
    Réponses: 3
    Dernier message: 25/03/2006, 21h51

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