Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 20 sur 28
  1. #1
    Modérateur
    Avatar de Bisûnûrs
    Profil pro Josselin
    Développeur Web
    Inscrit en
    janvier 2004
    Messages
    9 608
    Détails du profil
    Informations personnelles :
    Nom : Josselin
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2004
    Messages : 9 608
    Points : 14 185
    Points
    14 185

    Par défaut Encoder son site en UTF-8 sans manquer une étape

    Hello,

    Je vous présente mon nouveau tutoriel qui va vous guider dans le passage d'un site en UTF-8 en reprenant toutes les étapes à ne pas manquer, ainsi que les différentes alternatives en fonction de votre environnement de travail.

    N'hésitez pas à me faire part de vos remarques, questions et suggestions dans cette discussion.

    Bonne lecture à tous !

  2. #2
    Responsable Développement Web

    Avatar de Bovino
    Homme Profil pro Didier Mouronval
    Développeur Web
    Inscrit en
    juin 2008
    Messages
    21 940
    Détails du profil
    Informations personnelles :
    Nom : Homme Didier Mouronval
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2008
    Messages : 21 940
    Points : 81 076
    Points
    81 076

    Par défaut

    Salut !

    Merci pour cet excellent (comme toujours ) tutoriel qui permettra à beaucoup de mieux comprendre la chaîne complète de l'encodage des caractères.
    Je pense que c'est effectivement une ressource qui manquait !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Rédacteur/Modérateur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mars 2008
    Messages : 2 333
    Points : 3 731
    Points
    3 731

    Par défaut

    Je ne réponds pas aux questions techniques par MP.

  4. #4
    Expert Confirmé Avatar de franculo_caoulene
    Inscrit en
    octobre 2003
    Messages
    2 880
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 2 880
    Points : 2 582
    Points
    2 582

    Par défaut

    Bravo et merci pour ce document! On aura enfin un lien vers lequel pointer lorsque la question sera posée.
    Penser à la recherche et au bouton

  5. #5
    Membre actif
    Inscrit en
    mars 2004
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 281
    Points : 151
    Points
    151

    Par défaut

    Bravo pour cet article !

    Les explications sur l'encodage UTF8 general et unicode sur MySQL étaient bienvenues.
    Bien penser à en faire de même pour les traitements AJAX.
    amiénois

  6. #6
    Membre Expert Avatar de HiRoN
    Profil pro
    Développeur Web
    Inscrit en
    août 2007
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : août 2007
    Messages : 2 014
    Points : 2 442
    Points
    2 442

    Par défaut

    Citation Envoyé par Macmillenium Voir le message
    +1...
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : HiRoN's Place

  7. #7
    Membre expérimenté Avatar de hansaplast
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 929
    Points : 563
    Points
    563

    Par défaut

    Bonjours,

    j'ai deja subit un site qui tentait de faire de l'utf-8.
    Le probleme étant que, par exemple, les données reçues via post/get étaient en latin1. Sur ce site, il fallait donc faire des utf8_encode() à tout bout de champ...
    Par curiosité, ce memo résout-il le pb, et si oui, à quel niveau?
    (j'ai survolé l'article sans trouvé de réponse)

  8. #8
    Modérateur
    Avatar de Bisûnûrs
    Profil pro Josselin
    Développeur Web
    Inscrit en
    janvier 2004
    Messages
    9 608
    Détails du profil
    Informations personnelles :
    Nom : Josselin
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2004
    Messages : 9 608
    Points : 14 185
    Points
    14 185

    Par défaut

    @hansaplast : Personnellement je n'ai vu aucun soucis de ce type dans mes tests. Les développeurs du site sur lequel tu bossais avaient dû louper une (ou plusieurs) étape, comme l'enregistrement du fichier en UTF-8 sans BOM par exemple.

    Si on prend ce code et qu'on enregistre le fichier en UTF-8 sans BOM, on peut voir qu'il n'y a pas de soucis d'accent :

    Code php :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    header( 'content-type: text/html; charset=utf-8' );
    ?>
    <!DOCTYPE html>
    <html>
    <head>
       <meta charset="utf-8" />
       <title>UTF-8</title>
    </head>
    <body>
     
    <pre>
       <?php
       print_r( $_POST );
       ?>
    </pre>
     
    <form action="" method="post">
       <p><input type="submit" value="Valeur accentuée" name="soumettre" /></p>
    </form>
     
    </body>
    </html>

    Après, comme dit dans mon tutoriel, si tu étais obligé d'utiliser utf8_encode() pour afficher correctement des caractères encodés en UTF-8, c'est que ton serveur renvoyait de l'ISO.

    Bref, plusieurs pistes à approfondir pour résoudre ton problème.

    Et si tu as l'occasion de démontrer qu'il manque quelque chose à ce niveau là dans le tutoriel avec un exemple que tu avais à l'époque et qui ne fonctionne toujours pas en ayant apporté les modifications nécessaires, tu peux toujours nous en faire part pour qu'on corrige le tutoriel.

  9. #9
    Membre du Club
    Profil pro Sky Gunning
    Développeur Web
    Inscrit en
    février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Nom : Sky Gunning
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : février 2009
    Messages : 46
    Points : 59
    Points
    59

    Par défaut

    Bonjour

    Je vient de tomber sur le tutoriel qui est plutôt pas mal, mais je ne comprend pas l'Intérêt d'utiliser utf8_decode ou utf8_encode si tout le site passe en utf-8.

    L'Intérêt d'utiliser l'encodage ou le décodage est pour les endroit du site qui ne sont peut être PAS en utf-8... non?

    Désolé si je me trompe, ou si j'ai mal compris l'utilisation dans le tutoriel/cour.

    Sky

  10. #10
    Membre expérimenté Avatar de hansaplast
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 929
    Points : 563
    Points
    563

    Par défaut

    Citation Envoyé par Bisûnûrs Voir le message
    Si on prend ce code et qu'on enregistre le fichier en UTF-8 sans BOM, on peut voir qu'il n'y a pas de soucis d'accent :
    ok, alors je pense que le souci devait venir de là

    Citation Envoyé par Bisûnûrs Voir le message
    Et si tu as l'occasion de démontrer qu'il manque quelque chose à ce niveau là dans le tutoriel avec un exemple que tu avais à l'époque et qui ne fonctionne toujours pas en ayant apporté les modifications nécessaires, tu peux toujours nous en faire part pour qu'on corrige le tutoriel.
    non non, je me renseignait juste

    et merci

  11. #11
    Membre à l'essai

    Homme Profil pro Philippe LECLERCQ
    Développeur informatique
    Inscrit en
    décembre 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe LECLERCQ
    Âge : 55
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2002
    Messages : 8
    Points : 24
    Points
    24

    Par défaut Remarquable de clarté

    Merci beaucoup pour ce tuto qui éclaire un sujet quasiment pas traité à ma connaissance.

    Un petit plus pour les utilisateurs de Notepad++ : pensez à choisir le bon encodage pour les nouveau documents "Paramétrage | Préférences | nouveau document" et cocher UTF-8 sans BOM. Ca évite de devoir rechercher quel script a échappé à cet encodage surtout lorsqu'il y a de nombreuses inclusions.

    Néanmoins, cette manipulation n'est pas toujours de bon aloi notamment si vous faites usage de la librairie fpdf qui ne supporte pas l'UTF-8 jusque dans sa version 1.6 . Il vous faudra alors décoder chaque chaîne vers de l'ISO grâce à utf8_decode.

    Merci également pour les précieux conseils et tuyaux.

  12. #12
    Invité régulier
    Inscrit en
    mars 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 52
    Points : 9
    Points
    9

    Par défaut

    Attention que php travaille en ISO ce qui signifie que les fonctions de manipulation de caractères classiques (ucfirst, strlen, strtolower...) ne fonctionnent pas si on manipule des chaines encodées en utf8...
    Il est intéressant à ce moment là de repasser la chaine de utf-8 vers ISO et inversément ensuite en utilisant utf8_encode() et utf8_decode()...
    Ou il faut installer et configurer le module mbstring ...
    Dommage que le tutoriel n'en parle pas car j'ai lu ça ailleurs mais j'aurais aimé plus d'infos quant à ce module... ou ce qu'il est mieux de faire...
    Vivement php 6 qui lui travaillera en UTF-8

  13. #13
    Rédacteur
    Avatar de doctorrock
    Homme Profil pro Julien Pauli
    Architecte de système d'information
    Inscrit en
    mai 2006
    Messages
    603
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien Pauli
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2006
    Messages : 603
    Points : 2 711
    Points
    2 711

    Par défaut

    Code :
    1
    2
    3
    4
     
    iconv_set_encoding('internal_encoding','utf-8');
    iconv_set_encoding("output_encoding", "iso-8859-1");
    ob_start('ob_iconv_handler');
    Ce bout de code convertit de l'UTF-8 dans le buffer de sortie de PHP vers de l'ISO.

    J'aime bien aussi utiliser le buffer de sortie de PHP pour appliquer ce genre de traitements, il est tout à fait fait pour ça ^^
    .: Expert contributeur certifié PHP/ZF :.
    Mes articles - Twitter - GitHub

  14. #14
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 478
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 478
    Points : 14 307
    Points
    14 307

    Par défaut

    Citation Envoyé par Alixe80 Voir le message
    Il est intéressant à ce moment là de repasser la chaine de utf-8 vers ISO et inversément ensuite en utilisant utf8_encode() et utf8_decode()...
    Le principe d'utf-8 n'est-il pas justement qu'il contient tous les caractères du monde alors qu'ISO n'en contient que 250, et qu'on ne peut donc pas convertir l'utf-8 vers l'ISO ?

  15. #15
    Invité régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : octobre 2005
    Messages : 11
    Points : 7
    Points
    7

    Par défaut Ajouts d'infos

    Bonjour et merci pour ce tutoriel ! (et bonne année aussi)

    Dans l'éditeur PHPEdit (v3.4.4) :
    - option des nouveaux fichiers : Outils > Editer préférences ou F10, Menu Fichiers et copies de sauvegarde, options des fichiers, section type d'encodage
    - enregistrement d'un fichier ouvert en UTF8 : Fichier > Encodage de fichier > UTF-8

    Sinon ne pas oublier dans les formulaires accept-charset="utf-8" exemple :
    Code :
    1
    2
     
      <form name="logon" action="index.php" method="post" title="Identification" accept-charset="utf-8">
    Pour moi tout a très bien fonctionné, ça m'a évité d'utiliser htmlentities (car en plus j'empêche d'insérer des caractères spéciaux du type < et >) et j'ai aussi pu mettre des accents dans les commentaires et les voir affichés dans le HTML généré par doxygen.

  16. #16
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 478
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 478
    Points : 14 307
    Points
    14 307

    Par défaut

    Citation Envoyé par stundman Voir le message
    Sinon ne pas oublier dans les formulaires accept-charset="utf-8"
    ?

    C'est vraiment utile dans des cas précis, ou c'est pour la beauté du geste et la complétude par principe de l'information ?

  17. #17
    Membre actif
    Inscrit en
    mars 2004
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 281
    Points : 151
    Points
    151

    Par défaut

    Bonsoir,

    je n'avais jamais vu de propriété accept-charset. Pour m'être renseigné, cela ne fonctionne pas avec IE. Donc, c'est une notion à ne pas prendre en compte quand on souhaite être cross-browser.
    amiénois

  18. #18
    Modérateur
    Avatar de Bisûnûrs
    Profil pro Josselin
    Développeur Web
    Inscrit en
    janvier 2004
    Messages
    9 608
    Détails du profil
    Informations personnelles :
    Nom : Josselin
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2004
    Messages : 9 608
    Points : 14 185
    Points
    14 185

    Par défaut

    Citation Envoyé par stundman Voir le message
    Sinon ne pas oublier dans les formulaires accept-charset="utf-8"
    Si on en croit cette page :
    http://giminik.developpez.com/xhtml/form.html
    cet attribut n'agit pas sur l'encodage lors du transfert de données vers le serveur, mais décrit seulement ceux qui sont lus par le serveur (preuve en est, on peut en mettre plusieurs). Donc effectivement il n'est pas très utile, sauf à des fins descriptives.

    Mais sinon merci pour les autres remarques, je vais essayer de les prendre en compte rapidement.

  19. #19
    Membre confirmé Avatar de Wormus
    Inscrit en
    septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 262
    Points : 217
    Points
    217

    Par défaut



    Merci beaucoup pour ce tuto ! après une journée entière à galérer avec l'encodage sur mon site, j'en pouvais plus.
    Maintenant je mettrais tout en UTF-8 !!
    Bankaï !!

  20. #20
    Membre régulier
    Inscrit en
    mai 2007
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : mai 2007
    Messages : 182
    Points : 82
    Points
    82

    Par défaut

    Citation Envoyé par Alixe80 Voir le message
    Attention que php travaille en ISO ce qui signifie que les fonctions de manipulation de caractères classiques (ucfirst, strlen, strtolower...) ne fonctionnent pas si on manipule des chaines encodées en utf8...
    Et donc en pratique, il faut ouvrir tous les fichiers PHP et rechercher toutes les fonctions de traitement de chaine et les fonctions PCRE (par exemple preg_match) (avec notepad++ par exemple) susceptible de traiter des caractères accentués, et effectuer les adaptations comme précisé par Alixe80 (jouer avec utf8_decode() avant traitement et utf8_encode() après, ou trouver et utiliser la fonction mb_ équivalente).

    En pratique encore, je conseille de tagger chaque modif dans un commentaire (pour les retrouver facilement avec notepad++) en prévision de PHP6.. puisqu'il travaillera nativement en utf-8 : il faudrat alors supprimer tout les utf8_encode() et utf8_decode().. un futur tracas de moins . Pour les fonctions mb_string, je suppose qu'elles seront supportées par PHP6..

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •