Mit use utf8; lässt sich im Perl-Code einschalten, dass alle im Source definierten Strings usw. als UTF-8 interpretiert werden. Dazu muss der Source natürlich auch in UTF-8 sein.
Mit Eclipse bzw. dem EPIC Perl-Plugin und dessen Syntax-Check gibt es da aber zumindest unter OS X und Windows ein Problem, es wird zum Beispiel die folgende Fehlermeldung angezeigt:
Malformed UTF-8 character (unexpected non-continuation byte 0x7a, immediately after start byte 0xc4) at 210.text-converter.t line 23.
Das liegt daran, dass Eclipse auch korrekt als UTF-8 gespeicherten Source im Standard-Encoding an Perl zum Syntaxcheck weiterreicht: das korrekte UTF-8 wird also in ein anderes Encoding gewandelt. Und das ist unter OS X das MacRoman aus alten Zeiten vor OS X – und das ist natürlich kein valides UTF-8!
Abhilfe
Korrekterweise sollte das Perl-Plugin die Datei natürlich im für die Datei eingestellten Zeichensatz weiterreichen. Also einfach gar nicht konvertieren. Bis das passiert kann man sich aber auch anders behelfen:
Man füge die folgende Zeile in der eclipse.ini ein:
-Dfile.encoding=UTF-8
Die eclipse.ini findet man unter OS X unter Eclipse.app/Contents/MacOS bzw. im Application Bundle von Eclipse (im Finder Rechtsklick, „Paketinhalt zeigen“) im gleichnamigen Ordner via Terminal.
Unter Windows ist die Datei vermutlich an einem vergleichbaren Ort.
Alternativ kann man Eclipse den Parameter beim Start via Kommandozeile auch manuell mitgeben.
Als Nebenwirkung werden nun zum Syntaxcheck auch Dateien, die in Latin-1 codiert sind, für den Syntaxcheck nach UTF-8 gewandelt.
Viele Danke für den nützlichen Tip, habe eben mich darüber geärgert und Deine Seite über Google gefunden.
Grüße Hans