Wenn man Unicode-Zeichen in HTML verwenden will, hat man die Möglichkeit, den "Charset" im Content-Type des Dokuments als "utf-8" zu vermerken und UTF-8-Zeichen als solche auszugeben (d.h. beim Ausgabe über PerlIO den utf8-Layer wählen).

Eine defensivere Methode ist der Verzicht auf Ausgabe von Bytes oberhalb des Codepoints 127 und die Verwendung von nummerischen HTML-Entities. Das Modul HTML::Entities hilft hier:

    perl -w -MHTML::Entities=encode_entities_numeric -e '
	$string = "äöü\x{20ac}";
	print encode_entities_numeric
            ($string, qq{<>&\"\x{80}-\x{fffd}});
    '
      

Das Ergebnis:

    &#xE4;&#xF6;&#xFC;&#x20AC;    
      

Aber auch bei dieser Methode sollte der Charset des Dokuments als UTF-8 markiert werden.

 
^^
Copyright Slaven Rezić Februar 2006