DOMXML et encodage des caracteres - PHP - Programmation
Marsh Posté le 13-06-2005 à 11:23:47
Mais ne te fais absolument pas chier avec ça, tout est fait tout seul :
$pouet->set_content('éàéàéàéà'); |
Ensuite :
echo $dom->dump_mem(true, 'iso-8859-1'); |
Avec ça, tous les accents seront de la forme & #xxxxx;
echo $dom->dump_mem(true, 'utf-8'); |
Avec ça, ils seront tels quels, gràce à l'unicode
Marsh Posté le 13-06-2005 à 11:27:14
arf ! mais apparement je peux pas mettre cette option avec dump_file
faut faire un fread, fwrite etc etc ? (c galere ! lol !)
Marsh Posté le 13-06-2005 à 11:28:46
bah fait un dump_mem, que tu stocke dans une string, puis écrit dans un fichier via fopen et fwrite
Marsh Posté le 13-06-2005 à 11:54:23
FlorentG a écrit : bah fait un dump_mem, que tu stocke dans une string, puis écrit dans un fichier via fopen et fwrite |
si je fais ça :
Code :
|
il me retourne ça :
Citation : Warning: dump_mem(): output conversion failed due to conv error in /u/clonecop/public_html/php/ezdocs/valid.php on line 632 |
si je fais ça :
Code :
|
mon fichier XML me retourne ça :
Citation : La page XML ne peut pas être affichée |
et DOMXML (domxml_open_file) me retourne ça :
Citation : Warning: domxml_open_file(): Input is not proper UTF-8, indicate encoding ! Bytes: 0xE9 0x3C 0x2F 0x6E in /u/clonecop/public_html/php/ezdocs/model_pose.php on line 18 |
Marsh Posté le 13-06-2005 à 11:56:32
Y'a un caractère bizarre dedans Doit y avoir un truc lors de la création ou je sais pas...
Marsh Posté le 13-06-2005 à 12:05:37
il me retourne un truc chelou (ce qui ne se produisait pas avec dump_file)
Code :
|
Marsh Posté le 13-06-2005 à 12:06:14
J'veux dire quand toi tu le remplis, tu le fais comment ?
Marsh Posté le 13-06-2005 à 12:06:19
deja il me supprime mes accents (apparement)
et il me rajoute une balise </document> à la fin je sais pas pourquoi
Marsh Posté le 13-06-2005 à 12:07:30
et bien j'ai créé une serie de fonctions du genre :
Code :
|
Marsh Posté le 13-06-2005 à 12:08:19
Ok, ça doit être à ce moment que ça foire : t'as un doc en utf-8, et tu lui file des chaînes en iso. Donc essaye :
$newNode->set_content(utf8_encode($text)); |
Marsh Posté le 13-06-2005 à 12:14:37
visiblement c mieux pour l'encodage (merci)
mais par contre au niveau du dump c'est n'importe quoi !
Code :
|
Marsh Posté le 13-06-2005 à 12:17:59
C'est au niveau du fwrite, il doit pas avoir la bonne taille
Marsh Posté le 13-06-2005 à 12:18:41
bah j'ai pas spécifié de taille en fait.. peut etre qu'il faut le faire
Marsh Posté le 13-06-2005 à 12:31:07
bon c t pas ça... cependant j'ai changé un truc au niveau du fopen
Code :
|
maintenant j'ai un nouveau probleme... c'est avec domxml_open_file() qui me traduit un accent aigu comme ça :
Dupré Jacques
Marsh Posté le 13-06-2005 à 12:32:16
Là c'est parce que le contenu du fichier est en unicode, et que tu l'affiche en iso-8859-1
Marsh Posté le 13-06-2005 à 12:43:18
dernier truc.. j'ai l'impression qu'il me rajoute un \n ou un truc comme ça au decodage... c'est possible ?
Marsh Posté le 13-06-2005 à 13:06:33
j'ai trouvé !
visiblement tout vient de l'ouverture du fichier... fallait ajouter une option
$dom = domxml_open_file($_SESSION['xml_path_file'],DOMXML_LOAD_DONT_KEEP_BLANKS)
Marsh Posté le 13-06-2005 à 11:19:57
vu que htmlentities() m'est completement inutile pour du XML... je voudrais savoir si il existe une fonction DOMXML pour encoder les caracteres au format XML ?
la seule chose que j'ai trouvé pour l'instant c'est une fonction (qui peut etre fonctionne bien)
... une autre suggestion ?