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 :

"Ã " au lieu de "à" , récalcitrant


Sujet :

Administration MySQL

  1. #1
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut "Ã " au lieu de "à" , récalcitrant
    Coucou et bonne année

    J'ai une table de messages qui était un peu dans un format un peu bizarroïde (des é à la place de é), ça ne me posait pas de problème mais je viens de refaire mon serveur et passé de php 5.3 à 7.4 et MySQL 5.5 à 8.0, je pense que c'est lié (d'autant plus que je comprends un peu rien aux histories d’interclassements, entre celui de la connexion au serveur, celui de la base, celui de chaque table... ).

    Donc j'ai fais plusieurs requêtes (pour chaque caractères tordu dans le même genre) comem celle ci :
    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE messages SET text = REPLACE(text, 'é', 'é');

    Mais pour le "Ã ", impossible, je me demande si l'espace affiché est vraiment un espace, car même en cherchant "Ã " dans PhpMyAdmin, aucun résultat.

    Du coup, la requête suivante ne fait rien :
    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE messages SET text = REPLACE(text, 'Ã ', 'à');

    Si quelqu'un a une tite idée, car ca fait 3h que je rame dans la choucroute

    Merkouiiin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 731
    Points : 267
    Points
    267
    Par défaut
    Bonjour,

    Vous avez essayé:

    A+

  3. #3
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut
    Hello,

    Merci, je viens de tester mais rien de mieux
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 387
    Points : 19 098
    Points
    19 098
    Par défaut
    Salut à tous.

    Citation Envoyé par Couin
    Si quelqu'un a une tite idée, car ca fait 3h que je rame dans la choucroute
    Je suppose que vous désirer travailler dans le charset "UTF-8".
    Vous devez identifier le bon charset que vous allez employer dans votre application.

    Dans mes exemples ci-dessous, j'utilise le charset "latin1".
    Il suffit alors de remplacer "latin1" par "utf8mb4" et "latin1_general_ci" par "utf8mb4_sv_0900_ai_ci".
    L'utf8mb4 stocke de 1 à 4 octets un caractères dans less tables.

    Pour MySql, vous devez configurer votre fichier "my.ini" :
    Code ini : 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
    [client]
    # --------------- #
    #     Charset     #
    # --------------- #
     
    default-character-set = latin1
     
    [mysqld]
    # --------------- #
    #     Charset     #
    # --------------- #
     
    character-set-server     = latin1
    collation-server         = latin1_general_ci
    character-set-filesystem = latin1
     
    init-connect             = 'SET NAMES latin1 COLLATE latin1_general_ci'
    Ensuite, vous devez modifier votre base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DROP DATABASE IF EXISTS `base`;
     
    CREATE DATABASE IF NOT EXISTS `base`
    	DEFAULT CHARACTER SET `latin1`
    	DEFAULT COLLATE       `latin1_general_cs`;
     
    USE `base`;
    Et vos tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DROP TABLE IF EXISTS `tabone`;
     
    CREATE TABLE `tabone`
    (  `id`   integer unsigned NOT NULL auto_increment primary key,
       `lib`  varchar(255)     NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_cs`
      ROW_FORMAT=COMPRESSED;
    Ca, c'est pour votre serveur MySql.

    Par contre, je vous laisser chercher comment modifier vos fichiers PHP (ou HTML) ainsi que votre serveur apache.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut
    Bonjour Artemus,

    Merci pour votre réponse

    En fait, les messages enregistrés en DB par le tchat sont écrits correctement depuis le changement de serveur, et affichés aussi correctement sur le tchat.

    La base est en utf8mb4_unicode_ci, les tables en uft8bin (et j'avoue que je suis assez paumé dans toutes ces histories d'encodages lol).

    Ce sont les messages enregistrés avant qui posaient problème, j'ai pu convertir tous les caractères bizarres par leur caractères lisibles correspondants.

    Je pense que les scripts du tchat ne sont pas à modifier.

    Le Latin1 de votre message m'a fourni l'astuce.

    J'ai refais un script php exploitant une copie de la table "avant changement" :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header('Content-Type: text/html;charset=UTF-8');
    require_once ("data_connect.php");
    mysqli_query($dbconnect,"SET NAMES 'latin1'");

    Puis un select de cette ancienne table, je recupère toutes les colonnes et pour celle des messages :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $text = utf8_decode($result->text);
    $text = addslashes($text);

    Puis j'envoie chaque ligne dans un array, et une fois toutes les 10000 lignes, je fais un insert de ce array via un implode dans une nouvelle table.

    Et pour les messages depuis le changement de serveur,, étant bien écrit, je les envoie dans cette nouvelle table.

    Puis la nouvelle table remplace l'ancienne.

    C'est un peu cavalier et bricolage mais ce qui compte, c’est le résultat je pense

    En tout cas merci, et je peux marquer en résolu du coup !

    A bientôt
    Couin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/01/2016, 17h22
  2. Quote dans une requete...
    Par Isildur dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/06/2006, 10h57
  3. Problème de quote
    Par kennini dans le forum ASP
    Réponses: 4
    Dernier message: 20/11/2003, 09h40
  4. VARCHAR contenant une quote '
    Par tonyskn dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/05/2003, 19h21
  5. Quotes dans TFilenameEdit (RXLib)
    Par AnnSo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/01/2003, 20h26

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