xml-xalan-j-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary L Peskin <ga...@firstech.com>
Subject Re: Reader buggy for transformation? (Was: Re: Force encoding of resultdoc)
Date Mon, 16 Jul 2001 15:55:52 GMT
Looks great!  Thanks.

Gary

Donald_Leslie@lotus.com wrote:
> 
> Gary andScott,
> I have just added an "FAQ" and a section in "Usage Patterns" with the
> following:
> 
>                  If you use a character output stream to instantiate the
> StreamResult object which
>                   holds the transformation output, the Writer uses its own
> encoding, not the
>                   encoding you specify in the stylesheet.
> 
>                   If you want to use the stylesheet output encoding, do not
> use
>                   StreamResult(java.io.Writer) to instantiate the holder
> for the output. Alternatively,
>                   you can specify the encoding when you create a Writer
>                   (java.io.OutputStreamWriter). Once the Writer exists, you
> cannot change its
>                   encoding.
> -- Don
> 
> Gary L Peskin <garyp@firstech.com> on 07/13/2001 05:21:15 PM
> 
> To:   Scott_Boag@lotus.com
> cc:   bjoern.martin@gmx.net, xalan-j-users@xml.apache.org,
>       Donald_Leslie@lotus.com
> 
> Subject:  Re: Reader buggy for transformation? (Was: Re: Force encoding of
>       resultdoc)
> 
> Scott_Boag@lotus.com wrote:
> >
> > > It seems to me when you ask for a Writer output, you're asking
> > > for a specific encoding
> >
> > It's a little deeper than that even.  We can't set the encoding of a
> > writer, nor can we tell what encoding it is (we only know we have a
> Writer,
> > not an OutputStreamWriter).  The bottom line is, don't use Writers unless
> > you have a specific reason to.  Xalan has zero control over the encoding
> in
> > this case.
> 
> Yes, I meant conceptually when you create your own Writer which you pass
> in to Xalan, you are asking for a specific encoding which, in my opinion
> should override your instructions to Xalan.  Since we can't do much
> else, I like my interpretation of the semantic meaning of passing in
> your own Writer.  :)
> 
> > > System.setProperty("file.encoding", "UTF-8");
> >
> > This won't do anything for Xalan, unless your method is "text" and your
> > result is an OutputStream.  Otherwise the default is always UTF-8.
> 
> No, this was meant to affect the creation of your own Writer before
> creating the StreamResult.  I don't know why it didn't work but that is
> a problem for another day.
> 
> > > Now, if I
> > > change the output encoding to "iso-8859-1" in <xsl:output />, the
> > > streams do the job and output the utf-8 'ä' as iso-8859-1 'ä', but
> > > the FileWriter doesn't!
> >
> > If you pass in a Writer, the result is in the encoding of that Writer.
> It
> > can not be changed.
> 
> Yes.  As stated above.
> 
> >
> > > So if the FAQ entry would state that changing the encoding is only
> > > safe with streams set for the StreamResult, everything's fine.
> >
> > I thought the documentation did say that.  Not sure about the FAQ.  Don?
> >
> > -scott
> 
> I thought I saw it in the docs as well but after looking for it, I can
> only find it in the StreamResult(Writer) javadoc, generally considered a
> write only document with respect to users :).  Don, perhaps you could
> add something to the FAQ or a caution in the Usage Patterns.
> 
> Gary
> 
> >
> >
> >                     Bjoern Martin
> >                     <mabj0011@fh-kar        To:
> xalan-j-users@xml.apache.org
> >                     lsruhe.de>              cc:     (bcc: Scott
> Boag/CAM/Lotus)
> >                                             Subject:     Re: Reader buggy
> for transformation? (Was: Re: Force
> >                     07/13/01 03:10          encoding of result  doc)
> >                     AM
> >                     Please respond
> >                     to bjoern.martin
> >
> >
> >
> > > Thanks, Bjoern.  I looked at Cmdline.java and this was the first
> > > thing that jumped out at me.  I'm sure I'll be able to reproduce
> > > it on my machine.  If this is a bug, I think it is mostly a bug
> > > with the documentation but probably Scott and Joe should comment
> > > on this since I haven't really thought it through.
> >
> > Are they reading on this list? Or are we alone here? :)
> >
> > > It seems to me when you ask for a Writer output, you're asking
> > > for a specific encoding.  The one argument constructor for
> > > FileWriter assumes an encoding of the java system property
> > > file.encoding and that's what you used.  This overrides the
> > > encoding requested in the XSLT.
> >
> > I just added the line
> >
> >  System.setProperty("file.encoding", "UTF-8");
> >
> > in the beginning of the sample app, but nothing changed, as the line
> >
> >  System.out.println(out1.getEncoding());
> >
> > added after the file's written still returns "cp1252" :(
> >
> > > I do think this merits a FAQ entry but I wouldn't change XalanJ.
> > > What do you think?
> >
> > That would be sufficient, as this only occurs if you change the
> > encoding. Just to check I used an UTF-8 input and UTF-8 style,
> > creating UTF-8 output - worked fine with the streams and FileWriter,
> > though I still get encoding "cp1252" for the FileWriter. Now, if I
> > change the output encoding to "iso-8859-1" in <xsl:output />, the
> > streams do the job and output the utf-8 'ä' as iso-8859-1 'ä', but
> > the FileWriter doesn't!
> > So if the FAQ entry would state that changing the encoding is only
> > safe with streams set for the StreamResult, everything's fine.
> >
> > Regards.
> >
> > --
> > Bjoern Martin                                bjoern.martin@gmx.net

Mime
View raw message