8792 sujets

Développement web côté serveur, CMS

Bonjour,
J'utilise le DOM de PHP5 pour créer des documents XML.
J'ai un problème avec les accents. J'aimerais créer un noeud :
<input id="name" value="Valeur accentuée">
Pour cela je cree le noeud avec createElement puis je fais un
$node -> setAttribute ("value", $val);
Si je fais $val = "Valeur accentuée", PHP m'insulte au moment du saveXML. Le caractère accentué a l'air de lui poser problème.
Si je fais $val = "Valeur accentu&eacute;e", PHP remplace automatiquement le & par un &amp; au moment du saveXML et ce n'est pas ce que je veux non plus.
Quelqu'un a t-il une solution ?
Merci d'avance.
Est-ce que ton caractère accentué est bien en UTF-8 ? DOM attend de l'UTF-8 en entrée, pas de l'ISO-8859-1
Pourtant le constructeur de DOMDocument peut prendre en paramètre n'importe quel jeu de caractères reconnu. J'ai effectivement mis ISO-8859-1.

Pour être complet ma variable $val est en fait un $_POST["name"]. Elle provient d'un formulaire validé précedemment. Je ne sais pas comment maitriser son jeu de caracteres.
motton a écrit :

Pour être complet ma variable $val est en fait un $_POST["name"]. Elle provient d'un formulaire validé précedemment. Je ne sais pas comment maitriser son jeu de caracteres.


Normalement, c'est le jeu de caractère utilisé pour la page où est affiché le formulaire qui est utilisé pour les données envoyées au serveur (edit: sauf si un attribut accept-charset sor la balise <form> définit un autre charset).
Modifié par Bobe (12 Feb 2005 - 18:44)
Voici la réponse pour ceux que ça intéresserait (obtenue par les newsgrous) :
Effectivement vous n'étiez pas loin avec utf8.

> $node -> setAttribute ("value", utf8_encode($val));