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

Installation MySQL Discussion :

character set latin1, encore


Sujet :

Installation MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut character set latin1, encore
    Salut à tous,
    je sais que le sujet des character seta été abordé des milions de fois, mais j'ai beau chercher, je trouve rien qui résoud mon probleme.
    Je vous explique :
    un serveur gentoo, avec apache 2.0.58-r2, php 5.1.6-r6, mysql 5.0.26-r1
    un LAMP tout ce qu'il y a de plus classique.
    Sauf qu'un jour, j'ai voulu installer XOOPS.
    Et la, ca a mal tourné : les accents ne passent pas.
    Je me dis, bon, la page est en latin1, mysql doit renvoyer du utf8, donc jvai changer la conf et hop.
    Mais j'ai eu beau changer my.cnf, mettre latin1 partout, changer l'interclassement de mes bases en latin1_general_ci, rien n'y fait!!!

    dans un shell mysql, la commande :
    mysql> SHOW VARIABLES like 'character_set_%';
    +--------------------------+----------------------------+
    | Variable_name | Value |
    +--------------------------+----------------------------+
    | character_set_client | latin1 |
    | character_set_connection | latin1 |
    | character_set_database | latin1 |
    | character_set_filesystem | binary |
    | character_set_results | latin1 |
    | character_set_server | latin1 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+

    est ce que ce character_set_system change tout? et si oui comment le changer? et si non que faire?

    merci d'avance!

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    est ce que ce character_set_system change tout?
    non, rien du tout.
    et si oui comment le changer?
    on ne peut pas. MySQL 5 utilise toujours utf8 comme jeu système.

    et si non que faire?
    nous donner un exemple d'accent qui "ne passe pas"

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    voici un exemple qui ne passe pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    /* table créée avec :
    CREATE TABLE `test` (
    `nom` VARCHAR( 255 ) NOT NULL ,
    `donne` VARCHAR( 255 ) NOT NULL
    ) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_general_ci;
    */
        mysql_connect("localhost", "lyontraboules", "xxx");
    	mysql_select_db("lyontraboules");
    	$sql = 'INSERT INTO `test` (`nom`, `donne`) VALUES (\'test\', \'é\');';
    	mysql_query($sql);
     
    	$sql = 'SELECT * FROM `test` WHERE `nom`=\'test\' LIMIT 1';
    	$result = mysql_query($sql);
     
    	$row = mysql_fetch_object($result);
     
     ?><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    </head>
    <body><?php echo $row->donne; ?></body>
    tout est en latin1, normalement il ne devrait pas y avoir de problemes?
    pourtant, allez voir le résultat sur http://www.lyontraboules.net/test.php
    si on met le charset dans la balise meta a utf8, plus de probleme,
    de meme si on fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @mysql_query("SET CHARACTER SET latin1");
    sans changer le charset html.

    Mais comme je n'ai ni les connaissances ni le temps pour me plonger dans le code de XOOPS, aucune de ces deux solutions ne me conviennent.

    voyez vous une solution?

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    ce que je constate sur ta page de test, c'est une disparition pure et simple du caractère accentué !

    avec ta page PHP, je t'invite à faire le test suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
      mysql_connect("localhost", "lyontraboules", "xxx")
        or die(mysql_error());
      mysql_select_db("lyontraboules");
      $sql = "SELECT CHARSET('é'), _latin1'é', _utf8'é' ; " ;
      $resu = mysql_query($sql) or die(mysql_error());
      $ligne = mysql_fetch_row($resu) ;
      echo $ligne[0].'<br>' ;
      echo $ligne[1]. ' (caractère '. ord($ligne[1]) . ')<br>' ;
      echo $ligne[2]. ' (caractère '. ord($ligne[2]) . ')<br>' ;
    ?>

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    effectivement, il a disparu, étrange.

    la page est à jour avec ton script :
    http://www.lyontraboules.net/test.php

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    Donc ton script PHP est en UTF-8, même s'il produit une page HTML qui est en Latin-1.

    Quant à ton test "INSERT 'é'...", il n'est valable que si tu fais un TRUNCATE TABLE avant. Autrement, il te montre toujours la première ligne de ta table (ce qui, à mon avis, explique la disparition du é).

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    Citation Envoyé par Antoun
    Donc ton script PHP est en UTF-8, même s'il produit une page HTML qui est en Latin-1.
    euh excuse mon ignorance, mais c'est à dire?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    je pense avoir résolu le pb!

    dans php.ini j'ai décommenté tout ce qui concernai les charset, et mis ISO-8859-1 :
    default_charset = "iso-8859-1"
    mssql.charset = "ISO-8859-1" (je pense que celui la ne sert a rien)

    et la page de test me donne :

    latin1
    é (caractère 233)
    (caractère 0)

    merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Character set
    Par SebCBien dans le forum Débuter
    Réponses: 1
    Dernier message: 29/12/2004, 15h22
  2. Réponses: 17
    Dernier message: 07/10/2004, 18h05
  3. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49
  4. IB 6.0.1 - Win XP - Character Set
    Par SuperTotor dans le forum InterBase
    Réponses: 4
    Dernier message: 03/06/2003, 20h25
  5. character set // Nls_lang
    Par fopicht dans le forum Oracle
    Réponses: 2
    Dernier message: 23/05/2002, 12h04

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