caractères spéciaux : extraction de base de données pour XML

caractères spéciaux : extraction de base de données pour XML - PHP - Programmation

Marsh Posté le 14-06-2007 à 18:20:53    

Bonjour à tous,
 
J'ai souvent rencontré ce genre de problème, je dois extraire des données avec un script php pour générer un XML qui sera interprété par Flash... Le problème c'est que des fois c'est pire que le téléphone arabe ! mais je pense que ça vient de l'encodage xml
 
voici un bout de code :
 
 

Code :
  1. echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?> ";
  2. $query_sz="select * from ewb_zone where zo_recipient_id=$page_int and zo_position=1";
  3. $hcur_re = sql_query( $DBtype_sz, $query_sz, $connect_re );
  4. $row_tab=sql_fetch_array( $DBtype_sz, $hcur_re );
  5. $zo_id=$row_tab['zo_id'];
  6. $query_sz="select * from ewb_bloc where bl_zone_id=$zo_id and bl_modele_id=$bl_modele_id";
  7. $hcur_re = sql_query( $DBtype_sz, $query_sz, $connect_re );
  8. $row_tab=sql_fetch_array( $DBtype_sz, $hcur_re );
  9. ?>
  10. <content>
  11. <texte>
  12. <![CDATA[<?=utf8_encode(magic_gpc_stripslashes($row_tab['bl_texte1']))?>]]>
  13. </texte>
  14. </content>


 
 
tout se passe très bien jusqu'à l'utilisation de caractères "très" spéciaux ... genre le mot "œuvre" devient "œuvre " ... que faire ???
 
MErci d'avance
 
FReed

Reply

Marsh Posté le 14-06-2007 à 18:20:53   

Reply

Marsh Posté le 15-06-2007 à 10:50:43    

et au lieu de mettre encoding="utf-8", si tu mets "iso-8859-1", y s'passe quoi ??


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 15-06-2007 à 10:54:02    

niveau XML c pareil.. mais niveau flash j'ai plus mes accents

Reply

Marsh Posté le 15-06-2007 à 11:08:13    

j'ai essayé ça :  

Code :
  1. <texte>
  2. <![CDATA[<?=utf8_encode(magic_gpc_stripslashes(nl2br(htmlspecialchars(str_replace("<br />","\n",$row_tab['bl_texte1'])))))?>]]>
  3. </texte>


 
là tout s'affiche normalement sauf mes caractères "très" spéciaux, donc... même problème


Message édité par freed102 le 15-06-2007 à 11:08:44
Reply

Marsh Posté le 15-06-2007 à 11:31:26    

et si tu vire le utf8-encode ?


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 15-06-2007 à 11:52:40    

j'ai essayé aussi... j'ai plus mes accents dans mon flash

Reply

Marsh Posté le 15-06-2007 à 17:50:32    

allénouilla ! j'ai trouvé une solution !!
 
sur flash, on met en haut de la page :
 
System.useCodepage = true;
 
 
et en PHP on met :
 

Code :
  1. echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?> ";
  2. ?>
  3. <content>
  4. <texte>
  5. <![CDATA[<?=magic_gpc_stripslashes($row_tab['bl_texte1'])?>]]>
  6. </texte>
  7. </content>


 
et là... visiblement tout s'affiche bien !
 
je pensais pourtant que l'UTF-8 était imbattable ! d'ailleurs par défaut sur flash on utilise de l'UTF-8 !
 
bref ! ça marche.. c'est l'essentiel !
 
PS : par contre sur IE, le œ est toujours remplacé par un carré ! .. bref ! on s'en fout ! :lol:

Message cité 1 fois
Message édité par freed102 le 15-06-2007 à 17:53:21
Reply

Marsh Posté le 15-06-2007 à 18:54:31    

freed102 a écrit :

je pensais pourtant que l'UTF-8 était imbattable !


Gnié ?  :??:  


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 18-06-2007 à 10:23:10    

oui je pensais que l'UTF-8 codait tous les caractères sans problème

Reply

Marsh Posté le 18-06-2007 à 10:54:04    

Non non. Pour moi, l'UTF-8 ca veut dire caractères sans les accents, sans les choses bizaroïdes, etc...


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 18-06-2007 à 10:54:04   

Reply

Marsh Posté le 18-06-2007 à 10:57:55    

moi j'avais compris l'inverse :

Citation :


Unicode XML propose un jeu de caractères "universel". Cet objectif est extrêmement important sur Internet, où des textes dans toutes les langues, voir multilangues, cohabitent.
 
Actuellement, et dans sa troisième version, Unicode couvre la plupart des séquences de caractères utilisées dans le monde. Il contient également les caractères spéciaux pour l'interopérabilité avec des jeux de caractères plus anciens, ainsi que les caractères de commande usuels.
 
 


Message édité par freed102 le 18-06-2007 à 10:58:54
Reply

Marsh Posté le 18-06-2007 à 11:29:02    

Ah ? lol
Pas très clair toute cette affaire!


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed