deine komische Variable nun $hähö oder $hçhè heisst, solange die bytes identisch sind.
Oha, hier gibt es wohl ein Missverständnis ;-) Dann mach ich es jetzt mal ausführlicher. Ich meinte, wenn ich einen String habe und diesen dann ausgebe:
use Encode;
binmode(STDOUT, ':utf8');
my $s = "schönes Wetter heute";
print $s;
Meine HTML-Seite ist in UTF-8 kodiert, mein CGI-Skript in latin1. Deshalb wird das "ö", bzw. das Byte \xF6, korrekt nach UTF-8 konvertiert. Wäre mein Skript aber iso-8859-4 oder so kodiert, hätte mein "ö" vielleicht einen anderen Oktetwert und dies müsste Perl wissen um es korrekt nach UTF-8 zu konvertieren.
Genauso, wenn mein CGI-Skript in UTF-8 kodiert ist; dann belegt mein Zeichen "ö" zwei Bytes und ich schreibe "use utf8;" und schon klapppts wieder.
Wenn ich "use utf8;" schreibe und mein Quelltext ist latin1 kodiert, dann beschwert sich Perl bei dem "ö" als "not well formed character".
Perl muss eben wissen, in welchem Encoding mein Code geschrieben ist, damits bei Strings keine Probleme gibt.
Hoffe meine Frage ist nun deutlicher geworden ;) Wenn nicht, einfach nochmal fragen.
Viele Grüße
Christian