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 method. http://x58.deja.com/[ST_rn=ps]/threadmsg_ct.xp?AN=694903389.1&mhitnum=1 1. The output of transformNode is always UTF-16 (regardless of the encoding attribute in xsl:output). This is because transformNode outputs a BSTR, which 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 IPersistStream 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 page: 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. One of the byte order marks is "EF BB BF", which specifies that the document is encoded as UTF-8. I assume this is the mark that Notepad is writing. Some 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 "3C 00 00 00". Before the encoding attribute can be parsed, at least the encoding "family" must be determined. The byte order mark assists in this autodetection process, and it is perfectly legal to begin XML documents with these special characters. ~Andy Kimball MSXSL Dev XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: encoding, Dimitre Novatchev | Thread | [xsl] including a javascript less-t, "Rubén" |
[xsl] RE: How to transform <BR> to , Sun, Christine (Cah | Date | Re: [xsl] Indexing a fop generated , Sebastian Rahtz |
Month |