ASP Classic here. =)
On 10/3/07, Abel Braaksma <abel(_dot_)online(_at_)xs4all(_dot_)nl> 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
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--