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

AJAX Discussion :

[AJAX] utf8/iso-8859-15 avec MySQL


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut [AJAX] utf8/iso-8859-15 avec MySQL
    Bonjour

    C'est déjà un point compliqué à gérer sans ajax, et là, ça devient pire !

    Bilan des choses.

    J'ai l'impression que ma base de données est gérée en utf8, un exemple donné par phpMyAdmin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enseignant |  	Afficher  |	  Structure  |	Rechercher  |	  Insérer  |	Vider  |	  Supprimer  |	5  |	MyISAM | 	utf8_unicode_ci  |	2,3 Kio
    Je fais des appels sur ma base de données avec php et je fais afficher les données. Jusqu'à maintenant, si je faisais des appels à MySQL, j'avais l'habitude de coder mes pages en iso.
    Et bien, dans le cas présent, c'est bon si mes pages php sont appelées en include et ça plante si elles sont intégrées par un appel ajax. Pour les appels ajax, j'avais déjà remarqué que mes lettres accentuées je devais les écrire avec les codes é pour un é par exemple.
    Je me suis dit alors de tout passer en utf... Et bien là, plus rien ne passe !

    Que faire ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Pour embrouiller les cartes...

    Dans des enregistrements que je viens de faire cette heure, phpMyAdmin m'affiche des é à la place de é et dans d'autres, il me mets des é à la place de é... Pourquoi ces deux versions ?
    Sur ces mêmes enregistrements, mon même programme m'affiche lorsque 'il est appelé en include lors de la création du fichier la même chose que phpMyAdmin. Et lorsqu'il est intervient suite à un appel ajax : un "?" dans un carré penché à 45° à la place du é et il met bien un é à la place du é . Donc, ce n'est plus le même qui est bien interprété !

    Le pire c'est que je ne comprends pas pourquoi j'ai les deux comportements dans mes enregistrements ! Je ne vois aucune différence si ce n'est qu'il y a un champ en varchar et l'autre en text... Mais, là je sors de l'ajax : http://www.developpez.net/forums/d80...ement-accents/

    Donc, sur ce fil, je ne pose que la question sur l'affichage. L'autre problème sert à montrer l'historique de mes tests.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Pour surmonter toutes mes embrouilles (il me semble que j'y suis arrivé), j'ai mis des addslashes aux phrases à rentrer dans la base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sujet='".addslashes($_GET['sujet'])."'
    J'ai parfois, mais pas toujours eu besoin d'imposer le mode utf8 pour les entrées MySQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @mysql_query("SET NAMES 'utf8'");
    Et j'ai imposé le mode ISO-8859-15 en sortie des appel AJAX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (!headers_sent()) header('Content-Type: text/xml; charset=ISO-8859-15');
    J'ai mis pour les sorties htmlentities :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .htmlentities($row1['nom']." ".$row1['prenom'], ENT_QUOTES).
    Si on pouvait m'expliquer le comment du pourquoi !
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

Discussions similaires

  1. passer de utf8 à ISO-8859-1
    Par lonyc dans le forum Débuter
    Réponses: 2
    Dernier message: 24/01/2009, 18h02
  2. Encoding ISO-8859-15 et UTF8
    Par calfater dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/06/2006, 21h12
  3. Convertir une chaîne utf8 en iso-8859-1
    Par dredre dans le forum ASP
    Réponses: 1
    Dernier message: 05/05/2006, 00h48
  4. Réponses: 15
    Dernier message: 24/02/2006, 14h17
  5. Convertir une chaine UTF8 en ISO-8859-1
    Par eods dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/08/2004, 16h57

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