Requires Embperl 2.1.0 and up.
Embperl tries to do the right thing to handle ISO-8859-1 and UTF-8
out of the box. There are three places where encoding comes into places:
Posted form data
While the first two things are handled by Embperl itself, the third item is
currently left to handle by Perl.
Perl carries for each string value a flag that tells if the string
is UTF-8 or not. Embperl uses this flag.
Posted form data is examined. If a string contains valid UTF-8
characters Perl's internal UTF-8 flag is set. You can disable
setting the UTF-8 flag by setting
Output escaping is done based on the UTF-8 flag. In case the UTF-8
flags is set characters above 127 are not escaped. To get the
correct appearance in your browser you also have to specify the
encoding as UTF-8 in your content-type http header.
If the UTF-8 flag is not set the output escaping is done based on the
EMBPERL_OUTPUT_ESC_CHARSET, which defaults to
ISO-8859-1 (latin1). ISO-8859-2 (latin2) is also selectable.
If you wish to have your Perl source code in UTF-8, you have to
use utf8; at the top of each page.
Please note that not all modules sets Perl's internal UTF-8 flag
correctly. At the time of this writing for example
DBI and Net::LDAP does not set this flag. You have to correct
it manualy, for example by using