Here is an old v1.6 example but principal applies to a current release.
file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
Yes, FileResourceloader with "unicode=true" attribute can handle all utf* and ansi encoding transparently. Encoding is autorecognized by BOM marker or fallback to a legacy ansi. We don't need or should tell a read encoding, its an internal bytesToChars issue handled by unicodeinputstream.
...
...
You should not use Velocity.getTemplate(name, encoding) method if used FileResourceLoader with unicode=true attribute. It voids all the wise purpose of FileResourceLoader unicode.
> From:
Johann.Weber@... <
Johann.Weber@...>
> Subject: AW: AW: getEncodingFromStream from UnicodeInputStream
> To:
user@...
> Date: Tuesday, July 21, 2009, 10:14 AM
> The UnicodeInputStream class is used
> to load files with a BOM correctly. It knows the file
> encoding but I can't use it.
> If it is the case that I have to load files with a
> different encoding (e.g. UTF-8 and UTF-16), I won't be able
> to handle such a situation, because I must set the
> input.encoding property or pass it to the getTemplate
> method. Otherwise, the default encoding will be taken for
> all files.
>
>
> -----Ursprüngliche Nachricht-----
> Von: mailmur [mailto:
mailmur@...]
>
> Gesendet: Dienstag, 21. Juli 2009 08:22
> An: Velocity Users List
> Betreff: Re: AW: getEncodingFromStream from
> UnicodeInputStream
>
>
> I think you misunderstood a fundametal reason of the
> UnicodeInputStream class. It is to use so that template
> loaders don't need to tell an encoding so all is fully
> transparent.
>
> getTemplate(name, encoding) method is an old legacy method
> where we as a user must know the encoding beforehand. This
> is very very unfortunate issue, something we should not
> worry about in the first place.
>
> Its only FileResourceLoader class using the
> UnicodeInputStream class. All other loaders don't use it,
> this is a lack of Velocity loader implementation. If all
> loaders was to use it then we just would use
> getTemplate(name) and all is fine.
>
> FileResourceLoader does not use it as a default use, you
> must tell "unicode=true" in a velocity.properties
> configuration. Then you can forget the file encoding, ansi
> and utf* templates are loaded properly.
>
>
http://svn.apache.org/repos/asf/velocity/engine/trunk/src/java/org/apache/velocity/runtime/resource/loader/FileResourceLoader.java>
>
> --- On Tue, 7/14/09,
Johann.Weber@...
> <
Johann.Weber@...>
> wrote:
>
> > From:
Johann.Weber@...
> <
Johann.Weber@...>
> > Subject: AW: getEncodingFromStream from
> UnicodeInputStream
> > To:
user@...
> > Date: Tuesday, July 14, 2009, 9:36 AM
> > It is in
> >
> org.apache.velocity.app.VelocityEngine.getTemplate(String
> > name, String encoding)
> > They sure do when you're using BOM in your templates.
> I
> > though it would be nice to use the encoding which was
> > determined by UnicodeInputStream.
> >
> > -----Ursprüngliche Nachricht-----
> > Von: mailmur [mailto:
mailmur@...]
> >
> > Gesendet: Montag, 13. Juli 2009 21:16
> > An: Velocity Users List
> > Betreff: Re: getEncodingFromStream from
> UnicodeInputStream
> >
> >
> > I think its not possible, its basicly an internal
> > bytesToChars issue to know about encoding. Textual
> templates
> > know nothing about byte storage they run at character
> level
> > nor know nothing about template loader instance was
> used.
> >
> > What is it getTemplate() method you mean, can you
> point me
> > to the class?
> >
http://svn.apache.org/repos/asf/velocity/engine/trunk/src/java/org/apache/velocity/> >
> >
> >
> > --- On Wed, 7/8/09,
Johann.Weber@...
> > <
Johann.Weber@...>
> > wrote:
> > > From:
Johann.Weber@...
> > <
Johann.Weber@...>
> > > Subject: getEncodingFromStream from
> > UnicodeInputStream
> > > To:
user@...
> > > Date: Wednesday, July 8, 2009, 2:48 PM
> > > Hi all,
> > >
> > > Is there a way to get the encoding information
> from
> > > UnicodeInputStream to use it in the
> getTemplate()
> > method?
> > > How do I can use the encoding which was auto
> detected
> > in case of unicode file recognition?
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
user-unsubscribe@...
> For additional commands, e-mail:
user-help@...
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
user-unsubscribe@...
> For additional commands, e-mail:
user-help@...
>
>