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 |