|
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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] IE error | Switch from cu, Abel Braaksma | Thread | RE: [xsl] IE error | Switch from cu, Joe Fawcett |
| Re: [xsl] IE error | Switch from cu, Steve | Date | Re: [xsl] How to remove the namespa, Abel Braaksma |
| Month |