Re: [xsl] IE error | Switch from current encoding to specified encoding not supported.

Subject: Re: [xsl] IE error | Switch from current encoding to specified encoding not supported.
From: Steve <subsume@xxxxxxxxx>
Date: Wed, 3 Oct 2007 13:38:49 -0400
ASP Classic here. =)

On 10/3/07, Abel Braaksma <abel.online@xxxxxxxxx> wrote:
> Hi Steve, William,
>
> This is one way to do it. The source of the original problem was
> actually with the settings for the internal XML Writer, which defaults
> to UTF-16 (partially true, real UTF-16 is not supported by Microsoft,
> notably, MS does not support surrogate pairs) and if you "just" write
> the results of an XsltProcessor, it ends up being UTF-16.
>
> By setting a custom writer with your properties, for the encoding you
> will effectively create the correct output stream in one go, without
> having to use Response.Write.Replace. I.e., in C# it looks a bit like this:
>
>     // instantiate an XmlWriter
>     XmlWriter xmlWriter = XmlWriter.Create("output.xml");
>     xmlWriter.Settings.Encoding = "UTF-8";
>     XslCompiledTransform xslt = new XslCompiledTransform(true);
>
>     // enable document function and scripting
>     XsltSettings xsltSettings = new XsltSettings(true, true);
>
>     // load stylesheet and transform to "output.xml" (but you can use
> any stream)
>     xslt.Load("Xslt/test.xslt", xsltSettings, null);
>     xmlWriter = XmlWriter.Create("output.xml");
>     xslt.Transform("Xslt/test.xslt", xsltArgs, xmlWriter);
>     xmlWriter.Close();
>
>
> This is using the classes from ASP.NET 2.0 so you if you want to use
> this you may have to adjust it to your situation.
>
> Cheers,
> -- Abel Braaksma
>
>
>
> W Charlton wrote:
> > Steve,
> >
> > If you are using ASP then you will need to add a replace function.
> >
> > Below is a snip of some code we use.
> >
> > Set XSLTemp = Server.CreateObject(MSXML2.XSLTemplate.3.0)
> >       Set XSLTemp.stylesheet = XSLDoc 'variable set higher up in page e.g.
> > c:\myfiles\myxsl.xsl
> >       Set XSLProc = XSLTemp.createProcessor
> >       XSLProc.input = XMLDoc 'variable set higher up in page e.g.
> > c:\myfiles\myxsl.xml
> >       XSLProc.addParameter "MyParam", "MyParamValue"
> >      XSLProc.transform
> >      Response.Charset = "ISO-8859-15"
> >
> >      Response.Write Replace(XSLProc.output, "UTF-16", "ISO-8859-15")
> >
> > If you want UTF-8 replace ISO-8859-15 (Latin 1 extended) with UTF-8
> >
> >
> > William Charlton
> > The yMonda team
> > yMonda Limited
> > w: www.ymonda.net

Current Thread