Accent et xml - PHP - Programmation
Marsh Posté le 14-09-2004 à 20:49:08
je crois que cela viens de ca "encoding="ISO-8859-1"" il faut peut etre utiliser une autre norme comme l'utf8
Yannick
Marsh Posté le 14-09-2004 à 20:49:51
da
Marsh Posté le 15-09-2004 à 11:23:00
en fait, j'ai le même problème que Gedeon et pourtant, j'ai bien précisé encoding="UTF-8"...
Marsh Posté le 15-09-2004 à 12:05:52
De plus plus dans mon exemple , si on utyilise la norme utf8 pour le fichier xml ça plante directement. en disant que l'encodage n'est pas bon.
Comme je l'ai dis l'encodage par défaut est a priori ISO-8859-1 par defaut sur PHP5
Marsh Posté le 15-09-2004 à 14:29:09
Bon bizarement la solution est la suivante :
utf8_decode($nodeList->firstChild->nodeValue);
Et là ho magie les accent reviennent !
Ce qui veut dire que la représentation interne des objet xml ne tient pas compte de ceci encoding="ISO-8859-1". Enfin pas completement en fait car lors du chargement "DomDocument->load(....)", si les caractères ne sont pas en accord avec l'attribut encoding ça ne passe pas.
Serait-ce une demi implementation du standard ????
Si quelqu'un a une reponse je suis preneur mais en tout cas Pb résolu !
Marsh Posté le 15-09-2004 à 17:25:34
non .. en fait si tu déclares un fichier avec un charset en UTF-8 .. Il faut aussi que les données soient enregistrées en UTF-8!
Donc checker et/ou modifier les options d'enregistrements de votre éditeur. ET s'il ne le permet pas en changer.
Marsh Posté le 16-09-2004 à 09:34:24
Oui on est d'accord sauf dans mon les données déclaré en ISO-8859-1 et ne sont pas enregistré en UTF-8. Donc ma remarque reste valide , pourquoi des données ISO-8859-1 déclaré comme tel et sauvegardées comme tel sont elles traité en UTP-8 ?
Marsh Posté le 16-09-2004 à 17:32:13
gedeon > le problème c'est que tu ne précises pas l'encodage de ta page test.php!
ET visiblement par défaut dans ton cas il applique l'utf-8.
Marsh Posté le 28-09-2004 à 10:21:28
Ok je vais tester en mettant precisant l'encodage de ma page test.php
Marsh Posté le 09-12-2004 à 12:31:56
J'ai eux ce problème a l'instant. (Xml + Xslt + Php4)
J'ai utilisé la fonction
Code :
|
& ça marche nikel chrome
http://fr.php.net/manual/fr/functi [...] coding.php
(oui, c'est du gros remontage de topic, mais si ça peut aider quelqu'un ...)
Marsh Posté le 09-12-2004 à 16:23:40
zapan666 a écrit : J'ai eux ce problème a l'instant. (Xml + Xslt + Php4)
|
ça c'est pour la lib Sablotron. Lui, il utilise Dom...
A essayer : mettre le encoding="ISO-8859-1" dans ton fochier, xml, xsl et en en-tête de ta page html.
Marsh Posté le 14-09-2004 à 17:53:34
Salut
Bon voila mon soucis :
J'ai un site web que je developpe en PHP avec le contenu et les style sous formes XML/XSL
Rien d'etonnant donc sauf que les caractère accentué ne s'affichent pas du tout , mal en fait !!
J'ai donc fais pas mal de recherche et vu que sur php , le codage par defaut du parseur est ISO-8859-1, mes fichiers xml sont aussi encodé de la meme maniere.
C la que je ne comprends pas car si je prends les memes fichiers xml et que je les parse avec les objets du framework.Net (en ASP.NET donc) les accents passent !!!
Je suis en PHP5 et comme je ne m'y connais pas enormément je fait appel a vos lumieres. J'ai reproduit le pb sur un exemple, ça donne ça :
test.php
***********************************************************
<html>
<head>
<title>test XML</title>
</head>
<body>
<?
$document = new DomDocument;
$document->preserveWhiteSpace = false;
$document->load("./data.xml" );
$listItem = $document->getElementsByTagName("data" );
foreach ($listItem as $nodeList)
{
print $nodeList->firstChild->nodeValue ;
print '<br/>';
}
?>
</body>
*********************************************************
data.xml
**********************************************************
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<data>un é</data>
<data>deux è</data>
<data>trois à</data>
</test>
**********************************************************
Resultat :
un é
deux è
trois Ã
Quelqu'un a une idée ?