problème d'accent et d'insertion aléatoire d'espaces blancs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème d'accent et d'insertion aléatoire d'espaces blancs

par gbx » 28 avr. 2008, 17:40

après avoir laissé le problème en suspens on a enfin trouvé une solution...
Donc comme je le disais plus haut, on utilise des gabarits SQL qui sont en fait écrits en XML.

Pour parser on utilise le moteur SAX avec xml_parser_create etc..

Nous avions oublié de spécifier l'encodage (xml_parser_create('UTF-8')) et on a cru un moment que l'erreur venait de là. Mais non...

Par contre, en encapsulant nos méchantes requêtes dans les balises <![CDATA[ et ]]> tout fonctionne comme par miracle !

La cause du problème est toujours inconnue par contre mais on va pas s'en plaindre ;)

vous pouvez donc passer le sujet en "résolu", en espérant que ça puisse aider une autre personne face au même dilemme par la suite !

merci.

problème d'accent et d'insertion aléatoire d'espaces blancs

par gbx » 18 févr. 2008, 11:17

bonjour à tous,

j'ai un soucis concernant une requête de sélection dans une base de données en UTF8 et l'utilisation de la fonction "IF"

Code : Tout sélectionner

SELECT refelementsi, SUBSTRING_INDEX(nom,'/',-1) as nom, nomcomptesite, statut, IF(chezsite,'Site de la société',IF(chezcontact,'Adresse contact',IF(adresse ='','Non determiné',adresse))) as emplacement ... WHERE ...
Mon problème survient lorsqu'il y a un accent dans la chaîne de remplacement : dans mon cas si chezsite = 1 on devrait afficher 'Site de la société'

Or, mon navigateur affiche 'Site de la soci été'. C'est un peu embêtant mais parfois l'espace vient se caler à un autre endroit dans la requête et génère une erreur.
Le problème ne vient donc pas de l'affichage. Pour info j'utilise des gabarits SQL mais je doute que ca vienne de là.

Tout le nécessaire a été fait concernant l'encodage UFT8 (header php en utf8, écriture du code php en "ansi as utf8", interclassement des tables de la bd en utf8 aussi...).

Pour le reste tout fonctionne correctement, mais là je cale.


Merci pour votre aide, ou tout simplement pour avoir lu jusqu'au bout ;)

bonne journée à tous.

amicalement,


gbx