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 :

Problème encodage sur IE


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut Problème encodage sur IE
    Bonjour à tous,

    J'aimerais avoir si possible une explication sur l'encodage parce que je suis complétement pommé...

    Base, Table, encodage du HTML, du navigateur...

    Très difficile à mettre en pratique.

    Ma base : utf8_general_ci
    Mes tables : certaines en latin1_swedish_ci et d'autre en utf8_general_ci
    Mon encodage de page sous Dreamweaver : Europe Centrale (ISO)
    Mon navigateur : Occident ISO-8859-1 quand on se trouve sur le site.

    Quand je lance l'ajax avec JQuery : xhr.overrideMimeType('text/html; charset=ISO-8859-1');

    J'aimerais éviter d'utiliser des utf8_encode ou des choses dans le genre, j'aimerais savoir comment faire en sorte que tout soit adéquat (mon site n'était pas encore lancé et en créant souvent, ça me sera utile).

    Merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Points : 281
    Points
    281
    Par défaut
    tu tombes bien, je crois voir eu tous les pb possibles et imaginable en la matière.
    En effet, MySQL n'est pas clair pour ça, la base en général est en utf_8 ... mais pas les tables etc.

    Le tout est que la base en générale soit en utf_8.
    Pour JQuery, je rappelle que le transfert se fait en utf-8 (format JSON).

    Es-ce que tu pourrais nous montrer :

    - l'en-tête de ta page html (<head></head>).
    - le code de connexion à la base de données (sans les identifiants bien-sûr )
    - .... et si tu est sous notepad++, regarde ce qui est coché dans le menu "Encodage".

    Attention, ne touche à rien dans ce MENU ! En fait, si il est encodé en ISO, il ne faut surtout pas cliquer sur "Encoder en utf-8", parce que ça va te faire plein de caractère illisibles, et c'est irrécupérable. donc un conseil, fait une sauvegarde avant !

    Si l'encodage n'est pas en "utf-8 (sans BOOM)", il faut cliquer sur "convertir en utf-8 (sans BOOM)", mais pas sur "Encoder en utf-8 (sans BOOM)".

    la différence est catastrophique

  3. #3
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Voici mon head
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
            <title><?php echo $meta_page_titre; ?></title>
            <meta name="description" content="<?php echo $meta_description; ?>" />
            <meta name="keywords" content="<?php echo $meta_motcle; ?>" />
            <meta name="copyright" content="" />
            <meta name="language" content="fr" />
            <meta name="revist-after" content="7 days" />
            <meta name="distribution" content="global" />
            <meta name="robots" content="ALL" />
    Mon script de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $connexion = mysql_pconnect($db_host,$db_user,$db_password);
    $select_base= mysql_select_db($db_base,$connexion);
    Je code sur Dreamweaver et l'encodage est : Europe Occidentale (ISO)

  4. #4
    Membre actif
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Points : 281
    Points
    281
    Par défaut
    plus étonnant que ça va pas
    je t'ai expliqué la manipe pour notepad++, mais je ne connais pas Dreamweaver ... tu devrais trouver avec quelques recherches.

    pour le document html, remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    Dans ton code de connexion, rajoute à la fin :

    mysql_query("set names 'utf8'");
    (set names 'utf8' est une requête comme les autres.)

    voilà, avec ça ça devrait aller.
    un lien qui pourrait t'aider :
    http://j-willette.developpez.com/tut...-en-utf8/#LIII

    la manipe y est expliquée pour Dreamweaver

    bon courage.

  5. #5
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Merci beaucoup je vais regarder ça de plus près

  6. #6
    Membre actif
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Points : 281
    Points
    281
    Par défaut
    normalement, pas besoin de mettre la fonction header dans chaque page php.
    si le problème persiste avec la base de donnés, le meilleure moyen est de l'exporter complètement, de copier le code produit dans un éditeur, puis avec cette éditeur convertir en utf-8, puis de réimporté la page ... mais on a normalement pas besoin d'aller si loin.
    bon courage.

    NB

    les cas "compliqués", c'est quand on récupère du texte venant d'autres sites avec des encodages différents
    j'ai été obligé de le faire pour un boot de recherche, il faut détecter quelle encodage c'est etc.

    à bientôt.

  7. #7
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Bonjour,

    Juste pour revenir sur une chose qui m'a fait tombé de mon fauteuil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion = mysql_pconnect($db_host,$db_user,$db_password);
    On ne doit plus utiliser pconnect mais connect sinon tu vas avoir de très gros soucis lors de la mise en production de l'application cf la documentation PHP

    Cordialement,

  8. #8
    Membre actif
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Points : 281
    Points
    281
    Par défaut
    Citation Envoyé par Inazo Voir le message
    Bonjour,

    Juste pour revenir sur une chose qui m'a fait tombé de mon fauteuil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion = mysql_pconnect($db_host,$db_user,$db_password);
    On ne doit plus utiliser pconnect mais connect sinon tu vas avoir de très gros soucis lors de la mise en production de l'application cf la documentation PHP

    Cordialement,
    le mieux étant je crois d'utiliser PDO (je connais que ça)...
    les avantages :

    - Orienté objet
    - Performant et facile d'utilisation pour les requêtes préparées.
    - et ... plus récent que mysql_ donc plus performant et sécurisé (enfin, j'imagine)

    n'hésite pas à me demander pour plus de renseignements si ça t'intéresse

  9. #9
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    L'avantage de PDO c'est de pouvoir utiliser les même fonction pour plusieurs SGBD.

    Plus sécurisé à condition d'utiliser les fonctions fournis tout comme mysql_ et je ne pense pas (j'ai fait de bench) que le gain se trouve en performance ou en sécurité.

    Mais c'est vrai que PDO peut être une très bonne idée

    Cordialement;

  10. #10
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    Tu peux également trouver d'autre réponses dans le tutoriel Encodez votre site en UTF-8 sans manquer une étape et l'adapter à ton encodage.

Discussions similaires

  1. Problème d'encodage sur un réseau intranet
    Par openeyes dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 02/02/2011, 16h09
  2. Problème d'encodage sur différents serveurs
    Par JEDI_BC dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2007, 15h47
  3. [1.1][C#]Problème encodage sur body du mailto
    Par suedey dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/01/2007, 13h57
  4. Réponses: 4
    Dernier message: 28/09/2006, 20h20
  5. Problème d'encodage sur MySql 4.1
    Par Blanchet dans le forum Outils
    Réponses: 1
    Dernier message: 04/12/2005, 04h53

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