logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

Re: entity euro hurts: msg#00012

Subject: Re: entity euro hurts
OK, I have a few insights on your problem.

- prova.xhtml: doesn't contain any € or € entity, so the ø
in København appears correctly.   is replaced with a blank (why,
by the way?)

It should be replaced by a "Non Breakable SPace" character. This is what   means.
A   furiously looks like a space...

- prova2.xhtml: contains €, which causes every entity to appear
messed up.

The problem is the following:

In MKDoc/XML/Decode/XHTML.pm, euro points to the decimal value 8364. Since this is a unicode high value, Perl has to upgrade all your strings to unicode. Hence, whenever you use € symbol the resulting string will be UTF-8 rather than latin1.

If you want to be sure that your template is _ALWAYS_ latin1, you have to use the 'Encode' module as follows:

use Encode;
my $string = $template->process (%stuff);
$string = Encode::encode ('ISO-8859-1', $string);


- prova3.xhtml: contains €;, which causes every entity to appear
messed up (except actually for the € itself, which remains as it
but I just can't see it the browser (console only).

I don't know which character you used for prova3.xhtml, but it appears very broken. I open the file in mozilla and wether I use latin-1 or UTF-8 to view your example, it doesn't work properly. I suspect this third template is broken.

If I use an ø instead of &oslash for København that is printed just
fine regardless of what I do with Euro. The problems come when I
use entities in the &entityname; form. Moreover,   never works
as it should. ;-)

Actually it does. It simply replaces it with its corresponding character.




<Prev in Thread] Current Thread [Next in Thread>