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

Requêtes MySQL Discussion :

Encoding ISO-8859-15 et UTF8


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 43
    Par défaut Encoding ISO-8859-15 et UTF8
    Bonjour,

    Je travaille sur une base de donnée Mysql 4 (d'où ce bittet dans cette partie du forum). La base est au format InnoDB et le jeux de caractère utilisé est UTF-8 Unicode (utf8_bin) .
    J'insère des informations dans le base via des pages Web au format UTF-8 (générées par des scripts php).

    Lorsque je recherche les information via une requête écrite en UTF-8, j'obtiens bien les tuples désirés. Par contre, lorsque cette requête est dans un fichier ISO, aucun enregistrement ne m'est renvoyé par la base.

    ma requète est du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from table WHERE champ LIKE 'ma valeur'
    Pourtant, il me semblais que l'utilisation du mot clé 'LIKE' et non pas du signe '=' servait à palier à ce genre de problème, car la base de donnée ne faisait plus la recherche via la valeur binaire de la chaine de caractère mais via la valeur désirée.

    J'aimerais donc savoir l'intérêt de 'LIKE' et comment je pourais palier à ce problème (si cela est possible).

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Citation Envoyé par calfater
    Par contre, lorsque cette requête est dans un fichier ISO
    C'est à dire ? Par quel moyen tu l'exécutes ?

    LIKE est essentiellement utilisé en conjonction avec les jokers % et _ , à ma connaissance il n'a aucune incidence sur le jeu de caractère impliqué.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 43
    Par défaut
    Je l execute via un serveur php.

    En faite, ce qui m interesserait serait que la basse de donnee execute les requetes en faisant attention au jeux de caracteres qui est utilise lors de l envoie de le requete. Si mon fichie est encode en utf8 elle fait son travail normalement, mais si le format de mon fichier est autre, elle se debrouille pour faire le convertion.

    En faite, je ne sais pas si cela est possible, mais il me semblais que oui... Surement que je me trompe.

    Merci.

    PS: desole pour les accents suis sur un clavier qwerty

  4. #4
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Normalement le jeu de caractères utilisé par ton application pour communiquer avec MySQL ne dépend pas du charset du fichier PHP mais de la variable character_set_client du client MySQL utilisé par PHP.

    Donc j'ai du mal à voir pourquoi dans un cas la requête fonctionnerait et pas dans l'autre si les scripts sont sur le même serveur. J'avoue que je sèche là...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 43
    Par défaut
    En faite, j'ai une requete du type:

    SELECT * FROM table WHERE champ LIKE dédé

    or le é n'est pas codé de la même manière en ISO et UTF-8

    Aparament mysql fait une comparaison bite à bite.

    Avant ma requete, (lorsque mon fichier est en UTF-8) j'execute celle ci:
    et tout se passe bien.

    Tant que je reste en utf8 dans mes fichiers il n'y a pas de problèmes.

    Par contre, si mes scripts sont en ISO alors j'ai essayé:
    et
    mais rien n'aboutit.

    En faite, si l'insertion a été faite avec un jeu de caractères UTF-8, je ne peux plus utiliser de requetes faites en ISO. Et c'est ca que j'aimerais pouvoir résoudre... si c'est possible bien entendu.

Discussions similaires

  1. JAVA < XML encoding="ISO-8859-1" et sous noeud
    Par albert12345 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 16/08/2011, 01h53
  2. [XML] XML encoding="ISO-8859-1" vers php
    Par albert12345 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 15/08/2011, 23h18
  3. Kettle : Caractéres encoding ISO-8859-15
    Par titouni dans le forum kettle/PDI
    Réponses: 0
    Dernier message: 23/04/2009, 17h41
  4. <?xml version="1.0" encoding="ISO-8859-1" ?>: obligatoire?
    Par BradPitt dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 25/11/2008, 12h45
  5. Réponses: 15
    Dernier message: 24/02/2006, 14h17

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