RE: [xsl] Re: encoding

Subject: RE: [xsl] Re: encoding
From: "Morris, Chris" <ChrisM@xxxxxxxxxxxxxxxx>
Date: Wed, 17 Jan 2001 14:11:30 -0600
> Otherwise, if you have specified an encoding in your xml declaration
> and need that preserved in the generated output, then with MSXML3 this
> is rather complicated:
> 1. Use transformNodeToObject() instead of transformNode()
> 2. On the resulting XMLDOMDocument object issue the save() method.

I couldn't get this to work, can you? I saw this recommendation online in
many places, but it doesn't seem to do the trick.

I did get this off deja from a MS employee, and he doesn't mention the above

  1. The output of transformNode is always UTF-16 (regardless of the
  attribute in xsl:output).  This is because transformNode outputs a BSTR,
  is by definition a string of UTF-16 characters.

  2. To output using the encoding specified in xsl:output, you must pass an 
  ISequentialStream, an IStream, an ASP Response stream, or an
  pointer to transformNodeToObject or XSLProcessor.output.  The correctly 
  encoded bytes will be streamed out to these interfaces, at which point the

  implementation decides what to do with the bytes.  An example in an ASP

  xml_dom.transformNodeToObject xsl_dom, Response

  This will efficiently stream the results of the transformation to an ASP 
  response stream using UTF-8, if that is what you specified in xsl:output. 

  3. The XML spec has an "Autodetection of Character Encodings" appendix.
  of   the byte order marks is "EF BB BF", which specifies that the document
  encoded as UTF-8.  I assume this is the mark that Notepad is writing.
  form of autodetection is absolutely necessary so that the xml-decl can be 
  correctly interpreted.  For example, UCS-4 (big-endian) will encode the 
  leading "<" as "00 00 00 3C" while UCS-4 (little-endian) will encode it as
  00 00 00".  Before the encoding attribute can be parsed, at least the
  "family" must be determined.  The byte order mark assists in this 
  autodetection process, and it is perfectly legal to begin XML documents
  these special characters.

  ~Andy Kimball

 XSL-List info and archive:

Current Thread