You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@velocity.apache.org by Pham Anh Tuan <an...@ichi-corp.jp> on 2006/06/22 05:43:58 UTC

[HELP] How can I set pageEncoding in Velocity (.vm page)

Hi all,

plz help me find out the way to set pageEncoding in .vm file :(

thanks in advance

bowlkhin

Re: [HELP] How can I set pageEncoding in Velocity (.vm page)

Posted by mailmur <ma...@yahoo.com>.
I have own servlet where I handle requests. I try to
create all webapps as UTF-8 enabled, no options
allowed.  Even all config files are stored as
utf-8_with_bom files :-)

I use my UnicodeReader to read all .properties files
and .vm files. I save files as UTF-8_withBOM text
files, Windows Notepad can do it. See this page:
http://koti.mbnet.fi/akini/java/unicodereader/

You may customize velocity provided servlet to force
utf-8 charset. Just take sources and edit servlet you
use.
* first command in doPost/doGet method is
request.setCharacterEncoding("UTF-8")
this must be called before anyone use req.getParameter
methods. You may break this if you have filter
preprocessors and filters dont oboey this rule.

* update Content-Type header for the response
accordingly.
response.setContentType("text/html; charset=UTF-8")
this put webbrowsers display all possible characters
fine. 

* and to play even more safe add the following html
metatag on each html page.
<html>
<head>
  <meta http-equiv="content-type" content="text/html;
charset=UTF-8" />
  <title>MyUTF8Page</title>
</head>
<body>....

* Always give .jsp directives for jsp pages.
you saved .jsp as legacy ISO-8859-1 file:
  <%@ page contentType="text/html; charset=UTF-8" 
     pageEncoding="ISO-8859-1" 
  %>

you saved .jsp as UTF-8 file:
  <%@ page contentType="text/html; charset=UTF-8" 
     pageEncoding="UTF-8"
  %>

And everything should do fine. If I must edit jsp
pages directly through a linux console I usually save
files as ISO-8859-1. Our Pine texteditor does not
support utf8 properly.

* webclients post forms using a container html page
charset. So if you return utf-8 charset enabled web
page then you will get name-value pairs as
UTF8urlencoded values. Unfortunately each and every
webbrowser is a buggy and don't let you know it. 

They should post Content-Type header as:
application/x-www-form-urlencoded; charset=UTF-8

But they only do:
application/x-www-form-urlencoded

If servlet engine (tomcat, ...) does not find charset
attribute from the request it fallbacks to legacy
ISO-8859-1 charset. You then will get wrong
bytesToString conversion.

You must handle it by using mentioned
req.setCharacterEncoding("UTF-8") before reading
parameter values from the request. Then you
automatically get a proper bytesToString conversion
behind the scene.

Believe me, if you must create cross-international
webapps your life is a nightmare without a true
end-to-end UTF8 charset. I create Mysql databases with
default UTF8 charset, save config files as
utf8withbom, http request and responses are forced to
utf8 charset, etc...



thx
--- Pham Anh Tuan <an...@ichi-corp.jp> wrote:

> ah, thanks to Antonius Ng, I create a filter and
> filtering all url-pattern 
> *.do or *.vm :)
> 
> again, thank you :)
> ----- Original Message ----- 
> From: "Antonius Ng" <an...@n2nconsulting.com>
> To: "Velocity Users List"
> <ve...@jakarta.apache.org>
> Sent: Thursday, June 22, 2006 11:08 AM
> Subject: Re: [HELP] How can I set pageEncoding in
> Velocity (.vm page)
> 
> 
> > Hi bowlkhin,
> >
> > Maybe you can add the following to your servlet.
> > req.setCharacterEncoding("UTF-8");
> >
> > I have the above line in my Filter.
> >
> > Cheers,
> > Antonius Ng
> >
> > Pham Anh Tuan wrote:
> >
> >> Thank you, Antonius Ng,
> >>
> >> I did but it give me no effect :|
> >>
> >> I don't know why :(
> >>
> >> only if I add attribute
> enctype="multipart/form-data" in <form> tag, I 
> >> get unicode characters :|
> >> ----- Original Message ----- From: "Antonius Ng" 
> >> <an...@n2nconsulting.com>
> >> To: "Velocity Users List"
> <ve...@jakarta.apache.org>
> >> Sent: Thursday, June 22, 2006 10:46 AM
> >> Subject: Re: [HELP] How can I set pageEncoding in
> Velocity (.vm page)
> >>
> >>
> >>> Hi bowlkhin,
> >>>
> >>> I usually set it at velocity.properties
> >>>
> >>>
>
#----------------------------------------------------------------------------
> >>>
> >>> # T E M P L A T E  E N C O D I N G
> >>>
>
#----------------------------------------------------------------------------
> >>>
> >>>
> >>> input.encoding=UTF-8
> >>> output.encoding=UTF-8
> >>>
> >>> Cheers,
> >>> Antonius Ng
> >>>
> >>> Pham Anh Tuan wrote:
> >>>
> >>>> Hi all,
> >>>>
> >>>> plz help me find out the way to set
> pageEncoding in .vm file :(
> >>>>
> >>>> thanks in advance
> >>>>
> >>>> bowlkhin
> >>>>
> >>>
> >>>
> >>>
> >>>
>
---------------------------------------------------------------------
> >>> To unsubscribe, e-mail:
> velocity-user-unsubscribe@jakarta.apache.org
> >>> For additional commands, e-mail:
> velocity-user-help@jakarta.apache.org
> >>>
> >>>
> >>
> >>
> >>
> >>
>
---------------------------------------------------------------------
> >> To unsubscribe, e-mail:
> velocity-user-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail:
> velocity-user-help@jakarta.apache.org
> >>
> >>
> >
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> velocity-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
> velocity-user-help@jakarta.apache.org
> >
> > 
> 
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> velocity-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> velocity-user-help@jakarta.apache.org
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org


Re: [HELP] How can I set pageEncoding in Velocity (.vm page)

Posted by Pham Anh Tuan <an...@ichi-corp.jp>.
ah, thanks to Antonius Ng, I create a filter and filtering all url-pattern 
*.do or *.vm :)

again, thank you :)
----- Original Message ----- 
From: "Antonius Ng" <an...@n2nconsulting.com>
To: "Velocity Users List" <ve...@jakarta.apache.org>
Sent: Thursday, June 22, 2006 11:08 AM
Subject: Re: [HELP] How can I set pageEncoding in Velocity (.vm page)


> Hi bowlkhin,
>
> Maybe you can add the following to your servlet.
> req.setCharacterEncoding("UTF-8");
>
> I have the above line in my Filter.
>
> Cheers,
> Antonius Ng
>
> Pham Anh Tuan wrote:
>
>> Thank you, Antonius Ng,
>>
>> I did but it give me no effect :|
>>
>> I don't know why :(
>>
>> only if I add attribute enctype="multipart/form-data" in <form> tag, I 
>> get unicode characters :|
>> ----- Original Message ----- From: "Antonius Ng" 
>> <an...@n2nconsulting.com>
>> To: "Velocity Users List" <ve...@jakarta.apache.org>
>> Sent: Thursday, June 22, 2006 10:46 AM
>> Subject: Re: [HELP] How can I set pageEncoding in Velocity (.vm page)
>>
>>
>>> Hi bowlkhin,
>>>
>>> I usually set it at velocity.properties
>>>
>>> #----------------------------------------------------------------------------
>>>
>>> # T E M P L A T E  E N C O D I N G
>>> #----------------------------------------------------------------------------
>>>
>>>
>>> input.encoding=UTF-8
>>> output.encoding=UTF-8
>>>
>>> Cheers,
>>> Antonius Ng
>>>
>>> Pham Anh Tuan wrote:
>>>
>>>> Hi all,
>>>>
>>>> plz help me find out the way to set pageEncoding in .vm file :(
>>>>
>>>> thanks in advance
>>>>
>>>> bowlkhin
>>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>>
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org


Re: [HELP] How can I set pageEncoding in Velocity (.vm page)

Posted by Antonius Ng <an...@n2nconsulting.com>.
Hi bowlkhin,

Maybe you can add the following to your servlet.
req.setCharacterEncoding("UTF-8");

I have the above line in my Filter.

Cheers,
Antonius Ng

Pham Anh Tuan wrote:

> Thank you, Antonius Ng,
>
> I did but it give me no effect :|
>
> I don't know why :(
>
> only if I add attribute enctype="multipart/form-data" in <form> tag, I 
> get unicode characters :|
> ----- Original Message ----- From: "Antonius Ng" 
> <an...@n2nconsulting.com>
> To: "Velocity Users List" <ve...@jakarta.apache.org>
> Sent: Thursday, June 22, 2006 10:46 AM
> Subject: Re: [HELP] How can I set pageEncoding in Velocity (.vm page)
>
>
>> Hi bowlkhin,
>>
>> I usually set it at velocity.properties
>>
>> #---------------------------------------------------------------------------- 
>>
>> # T E M P L A T E  E N C O D I N G
>> #---------------------------------------------------------------------------- 
>>
>>
>> input.encoding=UTF-8
>> output.encoding=UTF-8
>>
>> Cheers,
>> Antonius Ng
>>
>> Pham Anh Tuan wrote:
>>
>>> Hi all,
>>>
>>> plz help me find out the way to set pageEncoding in .vm file :(
>>>
>>> thanks in advance
>>>
>>> bowlkhin
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org


Re: [HELP] How can I set pageEncoding in Velocity (.vm page)

Posted by Pham Anh Tuan <an...@ichi-corp.jp>.
Thank you, Antonius Ng,

I did but it give me no effect :|

I don't know why :(

only if I add attribute enctype="multipart/form-data" in <form> tag, I get 
unicode characters :|
----- Original Message ----- 
From: "Antonius Ng" <an...@n2nconsulting.com>
To: "Velocity Users List" <ve...@jakarta.apache.org>
Sent: Thursday, June 22, 2006 10:46 AM
Subject: Re: [HELP] How can I set pageEncoding in Velocity (.vm page)


> Hi bowlkhin,
>
> I usually set it at velocity.properties
>
> #----------------------------------------------------------------------------
> # T E M P L A T E  E N C O D I N G
> #----------------------------------------------------------------------------
>
> input.encoding=UTF-8
> output.encoding=UTF-8
>
> Cheers,
> Antonius Ng
>
> Pham Anh Tuan wrote:
>
>>Hi all,
>>
>>plz help me find out the way to set pageEncoding in .vm file :(
>>
>>thanks in advance
>>
>>bowlkhin
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org


Re: [HELP] How can I set pageEncoding in Velocity (.vm page)

Posted by Antonius Ng <an...@n2nconsulting.com>.
Hi bowlkhin,

I usually set it at velocity.properties

#----------------------------------------------------------------------------
# T E M P L A T E  E N C O D I N G
#----------------------------------------------------------------------------

input.encoding=UTF-8
output.encoding=UTF-8

Cheers,
Antonius Ng

Pham Anh Tuan wrote:

>Hi all,
>
>plz help me find out the way to set pageEncoding in .vm file :(
>
>thanks in advance
>
>bowlkhin
>  
>



---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org