Ok, I did an override of the load_tmpl function like this:

sub load_tmpl { my $self = shift; my ($tmpl_file, @extra_params) = @_; # add tmpl_path to path array if one is set, otherwise add a path +arg if (my $tmpl_path = $self->tmpl_path) { my @tmpl_paths = (ref $tmpl_path eq 'ARRAY') ? @$tmpl_path : $ +tmpl_path; my $found = 0; for( my $x = 0; $x < @extra_params; $x += 2 ) { if ($extra_params[$x] eq 'path' and ref $extra_params[$x+1] eq 'ARRAY') { unshift @{$extra_params[$x+1]}, @tmpl_paths; $found = 1; last; } } push(@extra_params, path => [ @tmpl_paths ]) unless $found; } my %tmpl_params = (); my %ht_params = @extra_params; %ht_params = () unless keys %ht_params; # Define our extension if doesn't already exist; $self->{__CURRENT_TMPL_EXTENSION} = '.html' unless defined $self-> +{__CURRENT_TMPL_EXTENSION}; # Define a default templat name based on the current run mode unless (defined $tmpl_file) { $tmpl_file = $self->get_current_runmode . $self->{__CURRENT_TM +PL_EXTENSION}; } $self->call_hook('load_tmpl', \%ht_params, \%tmpl_params, $tmpl_fi +le); #require HTML::Template; # let's check $tmpl_file and see what kind of parameter it is - we # now support 3 options: scalar (filename), ref to scalar (the # actual html/template content) and reference to FILEHANDLE #my $t = undef; #if ( ref $tmpl_file eq 'SCALAR' ) { # $t = HTML::Template->new_scalar_ref( $tmpl_file, %ht_params ) +; #} elsif ( ref $tmpl_file eq 'GLOB' ) { # $t = HTML::Template->new_filehandle( $tmpl_file, %ht_params ) +; #} else { # $t = HTML::Template->new_file($tmpl_file, %ht_params); #} require Template::Alloy; my $t = undef; if ( ref $tmpl_file eq 'SCALAR' ) { $t = Template::Alloy->new(type => 'filename', source => + $tmpl_file, %ht_params, ENCODING => 'UTF-8'); } elsif ( ref $tmpl_file eq 'GLOB' ) { $t = Template::Alloy->new(type => 'scalarref', source => $t +mpl_file, %ht_params, ENCODING => 'UTF-8'); } else { $t = Template::Alloy->new(type => 'filename', source => $tmpl_ +file, %ht_params, ENCODING => 'UTF-8'); } if (keys %tmpl_params) { $t->param(%tmpl_params); } return $t; }

It works, but I still get strange characters. My template files displays the strange question mark symbol (firefox), square emtpy box (IE) instead of å, ä and ö.

&#65533;ndra ditt l&#65533;senord

The data from my database displays as before

Törjebjöåärne

I have tried to save my template files as UTF-8 without BOM, without any success. Am I doing some kind of double encoding? Why does it give me different characters, sometimes an ö will give me &#65533; and sometimes ö


In reply to Re^3: UTF-8 webpage output from MySQL by Anonymous Monk
in thread UTF-8 webpage output from MySQL by boboson

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.