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

Administration MySQL Discussion :

Encodage UTF-8 avec mysql, apache..


Sujet :

Administration MySQL

  1. #1
    Invité
    Invité(e)
    Par défaut Encodage UTF-8 avec mysql, apache..
    Bonjour,

    je suis entrain d'installer un server Debian squeeze avec apache et mysql.
    Lors de l'installation j'ai bien pensé à faire tous les changements pour l'UTF8 (voir ce tuto)

    Donc :
    - mes fichiers ont la balise méta : <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    - mes fichiers sont bien encodés avec UTF-8 sans bom
    - AddDefaultCharset UTF-8 pour apache dans /etc/apache2/conf.d/charset
    - mes tables mysql sont en utf8_general_ci
    - Interclassement au niveau de la base de données entière est en utf8_general_ci
    - Pour php j'ai rajouté cela dans le php.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # Pour activer l'utf-8 par defaut
    mbstring.language=UTF-8
    mbstring.internal_encoding=UTF-8
    mbstring.http_input=UTF-8
    mbstring.http_output=UTF-8
    mbstring.detect_order=auto
    - Et pour mysql, j'ai rajouté :
    # Activer l'utf-8 par default sur le serveur (dans [mysqld])
    default-character-set = utf8
    default-collation = utf8_general_ci
    # dans [client]
    default-character-set = utf8
    Donc j'ai tout fait voir plus... mais j'ai toujours un problème , j'explique :
    Le problème se situe au niveau de mysql. Dès que je récupère des valeurs dans mes tables (qui sont bien en utf8) et que je les affiches j'ai le droit à des caractères dans ce style " � ".
    A partir de là, je comprends bien que mes valeurs récupérer sont en iso.
    Alors du coup je décide de mettre : SET NAMES "utf8"; avant ma requête et la plus de souci (ça confirme qu'il ne me renvoyais pas d'UTF8).

    1- Est ce que l'on est obligé de mettre SET NAMES "utf8" ?
    car il me semblait qu'avec tous les réglages que j'ai fait je devrais l'avoir par defaut.
    2 - Est-ce que c'est le contenu de mes champs qui sont en iso ? je comprends pas...

    Merci pour votre aide.

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    tiens moi aussi j'expérimente la grande joie de faire ça...

    oui c'est du à la configuration du drivers mysql (mysql, pdo, mysqli) qui selon la version de php reste sur latin1 par défaut, ce qui oblige à faire ça...(ou son équivalent dans pdo)

    php et mysql sont anciens dans cette version de debian, ils datent d' il y a plusieurs années...

    à savoir que dans cette version de mysql 5.1 tu utilises de l'utf8 limité à 3 octets maximum, l'utfmb4 n'est disponible qu'à partir de la version 5.5

    passe à debian 7.0 si tu veux bénéficier de l'utf8 réglable et utilisable par défaut sans "set names"
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ok, merci bien pour cette explication.
    Du coup je vais utiliser SET NAMES "utf8" en attendant d'avoir une version stable de debian 7 (j'ai vu que ça va pas tarder).

    Je trouve cela quand même étonnant que l'on ne peut pas modifier ce paramètre ? et pourquoi c'est le latin par défaut ?

    Enfin bon si tu me dis que c'est normal ça me rassure car là je ne voyais pas de solution.

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    c'est à cause du choix de l'existence des latinx: un encodade sur 1 à 2 octets maxi au lieu de 1 à 6 pour encoder l'unicode (qui utilise 4 octets de base ou 2 dans sa version limitée) et en plus avant les sites n'étaient quasiment jamais multilingue ou n'en mixait pas dans une même page. et pour finir ça fait que 4 ou 5 ans que tous les navigateur prennent en charge l'utf8 de base sans extension...

    donc dans les début du web et jusqu'à ce que l'adsl se démocratise ça avait son intérêt... et l'évolution en info ça prend du temps... tu as bien des gens qui utilisent des technologie qui ont plus de 5 ans (par exemple, y a bien des gars qui installe encore des debian lenny parce que tu trouves facilement les tutoriels et que certains hébergeurs la propose encore...)

    mais c'est bien les réglages que tu as fait car tu n'es pas forcé de générer normalement d'entête pour le charset vu que le serveur apache le fait
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ok merci bien pour toute ses précisions.
    Bonne continuation.

Discussions similaires

  1. [MySQL] Problème affichage UTF-8 avec Mysql
    Par flashnet dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/04/2010, 21h08
  2. [MySQL] Encodage UTF-8 avec phpMyAdmin
    Par matpush dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 30/12/2009, 09h30
  3. [mail] Encodage UTF-8 avec mail()
    Par anxious dans le forum Langage
    Réponses: 9
    Dernier message: 02/12/2009, 22h56
  4. Encodage UTF-8 avec Notepad++
    Par Palca dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 28/02/2009, 04h30
  5. PB encodage UTF-8 avec Japonais, Chinois
    Par ch33k0n dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 18/06/2007, 12h02

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