Je fusionne un fichier xml et une feuille xslt tous les deux au format
UTF-8 dans une chaine de caract=E8re HTML. Je souhaiterais que cette
fusion g=E9n=E8re une chaine utf8.
Mais lorsque j'analyse le code HTML g=E9n=E9r=E9 je vois que la
transformation m'a g=E9n=E9r=E9 un tag <META http-equiv=3D"Content-Type"
content=3D"text/html; charset=3Dutf-16">
Pourquoi a t-il utilis=E9 ce charset?
Voici le code que j'utilise :
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
XslTransform xslt =3D new XslTransfom();
// Load de la feuille de style.
xslt.Load("news.xsl");
// Transformation du fichier xml dans la string HTMLoutput.
string HTMLoutput;
StringWriter writer =3D new StringWriter();
xslt.Transform(new XPathDocument("news40.xml"), null, writer, null);
HTMLoutput =3D writer.ToString();
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Y at-il un moyen de controler le format de sortie de xstl.Transform()?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred
Dans son message fragmonster nous dit :
Je fusionne un fichier xml et une feuille xslt tous les deux au format UTF-8 dans une chaine de caractère HTML. Je souhaiterais que cette fusion génère une chaine utf8.
Mais lorsque j'analyse le code HTML généré je vois que la transformation m'a généré un tag <META http-equiv="Content-Type" content="text/html; charset=utf-16">
Pourquoi a t-il utilisé ce charset?
Voici le code que j'utilise : ================================================ > XslTransform xslt = new XslTransfom(); // Load de la feuille de style. xslt.Load("news.xsl");
// Transformation du fichier xml dans la string HTMLoutput. string HTMLoutput; StringWriter writer = new StringWriter(); xslt.Transform(new XPathDocument("news40.xml"), null, writer, null); HTMLoutput = writer.ToString(); ================================================ > Y at-il un moyen de controler le format de sortie de xstl.Transform()?
Bonsoir, AMHA, ce n'est pas le xslt.Transform qui s'occupe de cela mais plutôt le StringWriter. (il ya une propriété Encoding et vraisemblablement un constructeur adapté à l'initialisation de cette propriété) Je dirais que l'UTF-16 est l'encodage/charset d'une chaîne "brute".
-- Fred http://www.cerbermail.com/?3kA6ftaCvT Outlook Express et les News : http://foleide.free.fr/prmoe.htm
Dans son message 1122306843.771454.121280@g44g2000cwa.googlegroups.com
fragmonster nous dit :
Je fusionne un fichier xml et une feuille xslt tous les deux au format
UTF-8 dans une chaine de caractère HTML. Je souhaiterais que cette
fusion génère une chaine utf8.
Mais lorsque j'analyse le code HTML généré je vois que la
transformation m'a généré un tag <META http-equiv="Content-Type"
content="text/html; charset=utf-16">
Pourquoi a t-il utilisé ce charset?
Voici le code que j'utilise :
================================================ > XslTransform xslt = new XslTransfom();
// Load de la feuille de style.
xslt.Load("news.xsl");
// Transformation du fichier xml dans la string HTMLoutput.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform(new XPathDocument("news40.xml"), null, writer, null);
HTMLoutput = writer.ToString();
================================================ >
Y at-il un moyen de controler le format de sortie de xstl.Transform()?
Bonsoir,
AMHA, ce n'est pas le xslt.Transform qui s'occupe de cela mais plutôt le
StringWriter.
(il ya une propriété Encoding et vraisemblablement un constructeur
adapté à l'initialisation de cette propriété)
Je dirais que l'UTF-16 est l'encodage/charset d'une chaîne "brute".
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Outlook Express et les News : http://foleide.free.fr/prmoe.htm
Je fusionne un fichier xml et une feuille xslt tous les deux au format UTF-8 dans une chaine de caractère HTML. Je souhaiterais que cette fusion génère une chaine utf8.
Mais lorsque j'analyse le code HTML généré je vois que la transformation m'a généré un tag <META http-equiv="Content-Type" content="text/html; charset=utf-16">
Pourquoi a t-il utilisé ce charset?
Voici le code que j'utilise : ================================================ > XslTransform xslt = new XslTransfom(); // Load de la feuille de style. xslt.Load("news.xsl");
// Transformation du fichier xml dans la string HTMLoutput. string HTMLoutput; StringWriter writer = new StringWriter(); xslt.Transform(new XPathDocument("news40.xml"), null, writer, null); HTMLoutput = writer.ToString(); ================================================ > Y at-il un moyen de controler le format de sortie de xstl.Transform()?
Bonsoir, AMHA, ce n'est pas le xslt.Transform qui s'occupe de cela mais plutôt le StringWriter. (il ya une propriété Encoding et vraisemblablement un constructeur adapté à l'initialisation de cette propriété) Je dirais que l'UTF-16 est l'encodage/charset d'une chaîne "brute".
-- Fred http://www.cerbermail.com/?3kA6ftaCvT Outlook Express et les News : http://foleide.free.fr/prmoe.htm
fragmonster
Oui j'ai vu le Encoding du StringWriter, mais c'est une propriété en lecture seule :/
Je l'ai affiché via un Console.WriteLine("encodag : "+writer.Encoding) et ça m'a affiché un System.Text.UnicodeEncoding. Soit rien à voir avec l'UTF-16 ... J'en perds mon latin
Oui j'ai vu le Encoding du StringWriter, mais c'est une propriété en
lecture seule :/
Je l'ai affiché via un Console.WriteLine("encodag : "+writer.Encoding)
et ça m'a affiché un System.Text.UnicodeEncoding. Soit rien à voir
avec l'UTF-16 ... J'en perds mon latin
Oui j'ai vu le Encoding du StringWriter, mais c'est une propriété en lecture seule :/
Je l'ai affiché via un Console.WriteLine("encodag : "+writer.Encoding) et ça m'a affiché un System.Text.UnicodeEncoding. Soit rien à voir avec l'UTF-16 ... J'en perds mon latin
Fred
Dans son message fragmonster nous dit :
Oui j'ai vu le Encoding du StringWriter, mais c'est une propriété en lecture seule :/
Je l'ai affiché via un Console.WriteLine("encodag : "+writer.Encoding) et ça m'a affiché un System.Text.UnicodeEncoding. Soit rien à voir avec l'UTF-16 ... J'en perds mon latin
Bonjour
Exact.
Ne faudrait-il pas passer par un streamwriter plutôt que stringwriter ?
Pour les chaînes : http://msdn.microsoft.com/library/en-us/cpguide/html/cpconencodingbasetypes.asp
Autrement dit, il me paraît normal d'avoir UTF-16 pour un résultat en chaîne de caractères.
L'UTF-8, est un encodage. Ce n'est plus la chaîne que tu envoies mais sa transformée (flux d'octets). Un memorystream servant à initialiser un streamwriter ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT Outlook Express et les News : http://foleide.free.fr/prmoe.htm
Dans son message 1122362978.224480.109730@g44g2000cwa.googlegroups.com
fragmonster nous dit :
Oui j'ai vu le Encoding du StringWriter, mais c'est une propriété en
lecture seule :/
Je l'ai affiché via un Console.WriteLine("encodag : "+writer.Encoding)
et ça m'a affiché un System.Text.UnicodeEncoding. Soit rien à voir
avec l'UTF-16 ... J'en perds mon latin
Bonjour
Exact.
Ne faudrait-il pas passer par un streamwriter plutôt que stringwriter ?
Pour les chaînes :
http://msdn.microsoft.com/library/en-us/cpguide/html/cpconencodingbasetypes.asp
Autrement dit, il me paraît normal d'avoir UTF-16 pour un résultat en
chaîne de caractères.
L'UTF-8, est un encodage. Ce n'est plus la chaîne que tu envoies mais sa
transformée (flux d'octets).
Un memorystream servant à initialiser un streamwriter ?
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Outlook Express et les News : http://foleide.free.fr/prmoe.htm
Oui j'ai vu le Encoding du StringWriter, mais c'est une propriété en lecture seule :/
Je l'ai affiché via un Console.WriteLine("encodag : "+writer.Encoding) et ça m'a affiché un System.Text.UnicodeEncoding. Soit rien à voir avec l'UTF-16 ... J'en perds mon latin
Bonjour
Exact.
Ne faudrait-il pas passer par un streamwriter plutôt que stringwriter ?
Pour les chaînes : http://msdn.microsoft.com/library/en-us/cpguide/html/cpconencodingbasetypes.asp
Autrement dit, il me paraît normal d'avoir UTF-16 pour un résultat en chaîne de caractères.
L'UTF-8, est un encodage. Ce n'est plus la chaîne que tu envoies mais sa transformée (flux d'octets). Un memorystream servant à initialiser un streamwriter ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT Outlook Express et les News : http://foleide.free.fr/prmoe.htm
fragmonster
En fait, je travaille sur une newsletter. La chaine HTML résultant de la fusion entre mon xml et mon xsl est envoyée par email. Le problème est que certains de nos abonnés on des caractères bizarres qui apparaissent dans le message. Typiquement un pb d'encodage.
Lorsque j'analyse la source du message, celui est envoyé en charset="iso-8859-1".
Si le HTML est codé en UTF-16, celà pourrait expliquer les caractères eronnés.
Je souhaiterais harmoniser tout ça pour faire en sorte que les encodages du mail et du code HTML soient les mêmes. Or le MailMessage.BodyEncoding n'accèpte que : Encoding.UTF8Encoding Encoding.UTF7Encoding Encoding.ASCIIEncoding Encoding.UnicodeEncoding Encoding.Default
En fait, je travaille sur une newsletter. La chaine HTML résultant de
la fusion entre mon xml et mon xsl est envoyée par email. Le problème
est que certains de nos abonnés on des caractères bizarres qui
apparaissent dans le message. Typiquement un pb d'encodage.
Lorsque j'analyse la source du message, celui est envoyé en
charset="iso-8859-1".
Si le HTML est codé en UTF-16, celà pourrait expliquer les
caractères eronnés.
Je souhaiterais harmoniser tout ça pour faire en sorte que les
encodages du mail et du code HTML soient les mêmes. Or le
MailMessage.BodyEncoding n'accèpte que :
Encoding.UTF8Encoding
Encoding.UTF7Encoding
Encoding.ASCIIEncoding
Encoding.UnicodeEncoding
Encoding.Default
En fait, je travaille sur une newsletter. La chaine HTML résultant de la fusion entre mon xml et mon xsl est envoyée par email. Le problème est que certains de nos abonnés on des caractères bizarres qui apparaissent dans le message. Typiquement un pb d'encodage.
Lorsque j'analyse la source du message, celui est envoyé en charset="iso-8859-1".
Si le HTML est codé en UTF-16, celà pourrait expliquer les caractères eronnés.
Je souhaiterais harmoniser tout ça pour faire en sorte que les encodages du mail et du code HTML soient les mêmes. Or le MailMessage.BodyEncoding n'accèpte que : Encoding.UTF8Encoding Encoding.UTF7Encoding Encoding.ASCIIEncoding Encoding.UnicodeEncoding Encoding.Default
Fred
Dans son message fragmonster nous dit :
En fait, je travaille sur une newsletter. La chaine HTML résultant de la fusion entre mon xml et mon xsl est envoyée par email. Le problème est que certains de nos abonnés on des caractères bizarres qui apparaissent dans le message. Typiquement un pb d'encodage.
Lorsque j'analyse la source du message, celui est envoyé en charset="iso-8859-1".
Si le HTML est codé en UTF-16, celà pourrait expliquer les caractères eronnés.
Je souhaiterais harmoniser tout ça pour faire en sorte que les encodages du mail et du code HTML soient les mêmes. Or le MailMessage.BodyEncoding n'accèpte que : Encoding.UTF8Encoding Encoding.UTF7Encoding Encoding.ASCIIEncoding Encoding.UnicodeEncoding Encoding.Default
En fait, tu n'as pas à te préocuper de l'encodage dans la première partie du traitement. Tu ne manipules que des chaînes (donc Unicode/UTF-16). Et tu places ces chaînes dans le message. C'est ta classe message qui gère l'émission dans l'encodage que tu lui spécifies (iso-8859-15 par exemple). Donc, je dirais que la seule chose à faire est de supprimer la balise meta, l'encodage sera spécifié, comme tu l'as vu dans l'en-tête du message. A toi de faire attention de ne pas utiliser de caractères hors du jeu iso-8859-15 (mais cela doit être déjà correct) Désolé, je ne peux pas tester.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT Outlook Express et les News : http://foleide.free.fr/prmoe.htm
Dans son message 1122383151.004260.3960@g44g2000cwa.googlegroups.com
fragmonster nous dit :
En fait, je travaille sur une newsletter. La chaine HTML résultant de
la fusion entre mon xml et mon xsl est envoyée par email. Le problème
est que certains de nos abonnés on des caractères bizarres qui
apparaissent dans le message. Typiquement un pb d'encodage.
Lorsque j'analyse la source du message, celui est envoyé en
charset="iso-8859-1".
Si le HTML est codé en UTF-16, celà pourrait expliquer les
caractères eronnés.
Je souhaiterais harmoniser tout ça pour faire en sorte que les
encodages du mail et du code HTML soient les mêmes. Or le
MailMessage.BodyEncoding n'accèpte que :
Encoding.UTF8Encoding
Encoding.UTF7Encoding
Encoding.ASCIIEncoding
Encoding.UnicodeEncoding
Encoding.Default
En fait, tu n'as pas à te préocuper de l'encodage dans la première
partie du traitement. Tu ne manipules que des chaînes (donc
Unicode/UTF-16). Et tu places ces chaînes dans le message. C'est ta
classe message qui gère l'émission dans l'encodage que tu lui spécifies
(iso-8859-15 par exemple).
Donc, je dirais que la seule chose à faire est de supprimer la balise
meta, l'encodage sera spécifié, comme tu l'as vu dans l'en-tête du
message.
A toi de faire attention de ne pas utiliser de caractères hors du jeu
iso-8859-15 (mais cela doit être déjà correct)
Désolé, je ne peux pas tester.
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Outlook Express et les News : http://foleide.free.fr/prmoe.htm
En fait, je travaille sur une newsletter. La chaine HTML résultant de la fusion entre mon xml et mon xsl est envoyée par email. Le problème est que certains de nos abonnés on des caractères bizarres qui apparaissent dans le message. Typiquement un pb d'encodage.
Lorsque j'analyse la source du message, celui est envoyé en charset="iso-8859-1".
Si le HTML est codé en UTF-16, celà pourrait expliquer les caractères eronnés.
Je souhaiterais harmoniser tout ça pour faire en sorte que les encodages du mail et du code HTML soient les mêmes. Or le MailMessage.BodyEncoding n'accèpte que : Encoding.UTF8Encoding Encoding.UTF7Encoding Encoding.ASCIIEncoding Encoding.UnicodeEncoding Encoding.Default
En fait, tu n'as pas à te préocuper de l'encodage dans la première partie du traitement. Tu ne manipules que des chaînes (donc Unicode/UTF-16). Et tu places ces chaînes dans le message. C'est ta classe message qui gère l'émission dans l'encodage que tu lui spécifies (iso-8859-15 par exemple). Donc, je dirais que la seule chose à faire est de supprimer la balise meta, l'encodage sera spécifié, comme tu l'as vu dans l'en-tête du message. A toi de faire attention de ne pas utiliser de caractères hors du jeu iso-8859-15 (mais cela doit être déjà correct) Désolé, je ne peux pas tester.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT Outlook Express et les News : http://foleide.free.fr/prmoe.htm