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

PHP & Base de données Discussion :

Imposer UTF-8 par rapport à l'ISO


Sujet :

PHP & Base de données

  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 Imposer UTF-8 par rapport à l'ISO
    Bonjour

    Je viens de migrer mon serveur de mageia2 à mageia3. J'ai un petit problème au niveau de la gestion de l'encodage.

    Il me semble (phpMyAdmin aussi me le dit) que ma bd est en utf8. Je code ma page en utf8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    echo ('<?xml version="1.0" encoding="UTF-8"?>
    ....
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="charset=utf-8">
    <meta name="Author" content="Troumad">
    et pour afficher ma page (le résultat des requêtes mysql), il faut que je la passe en iso !!!
    Avant, il me suffisait de dire que ma page était en iso et s'était bon (pourquoi cette iso ? Je n'en savais rien, mais ça marchait). Maintenant, même si je dis que c'est de l'iso, firefox me l'affiche en utf et pour avoir une page lisible, il me faut la passer manuellement en encodage iso.

    La précédente config, bien que bancale m'allait tout à fait car, je migrais mes pages et la bd sur ovh et tout tournait aussi sur ovh.

    J'aimerai tout avoir en utf chez moi, puis après sur mon hébergement ovh (ovh sera un autre problème). Comment faire (chez moi) ?
    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
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Dire que la page renvoyée est en UTF-8 dans le code HTML, c'est une chose, encore faut-il que le fichier soit réellement écrit en UTF-8 (vérifie dans ton éditeur de texte que les pages sont bien écrites et enregistrées en UTF-8) et le serveur doit aussi dire au navigateur (mais c'est accessoire à cause du meta-equiv) que la réponse est du type "text/html, charset=utf-8".

    Ensuite, si le problème vient uniquement des données issues de MySQL, il faut t'assurer que quand le script se connecte à MySQL, il le fait vraiment en UTF-8. Je n'y connais rien mais apparemment il faut peut-être mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SET NAMES UTF8");
    dans le code au moment de la connexion.

  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
    C'est démodé : http://fr2.php.net/manual/fr/function.mysql-query.php
    Mais, ça renvoie un lien qui dit comment faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_query($db,"SET NAMES UTF8");
    Maintenant, j'aimerai savoir si c'est possible de configurer automatiquement php/MySQL pour que ce retour soit en utf8 automatiquement.
    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...

  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 ton fichier de configuration mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [client]
    default-character-set=utf8
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    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
    Je n'ai pas d'entrée default-character-set dans la section [client] de mon fichier /etc/my.cnf.
    Je mets la tienne et je teste...
    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...

  6. #6
    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
    J'avais du faire un mauvais test... Ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [client]
    user            = root
    password       = mon_mien
    port            = 3306
    socket          = /var/lib/mysql/mysql.sock
    default-character-set=utf8
    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. Encodage ISO-8859-1/UTF-8 par défaut
    Par mirabelle54 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 24/09/2012, 15h09
  2. Supprimer un fichier par rapport a une date
    Par NewB dans le forum Linux
    Réponses: 2
    Dernier message: 25/06/2003, 13h44
  3. [MATH] Point par rapport à une droite
    Par teska dans le forum Mathématiques
    Réponses: 6
    Dernier message: 14/05/2003, 16h11
  4. Les possibilité que C++ offre par rapport à Pascal Objet
    Par Riko dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 01/02/2003, 21h38
  5. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 20h08

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