sprain: Umlaute und Sonderzeichen in Unicode übersetzen

Hallo,

Ich habe folgendes Problem:
Ich möchte in Perl in einem String alle Sonderzeichen durch den Unicode-Wert ersetzen, also z.B. © in ©

Da beginnt jetzt aber das Problem. Gestützt auf die Tabelle in http://selfhtml.teamone.de/html/referenz/zeichen.htm habe ich meine Ersetzroutine geschrieben, also etwas so:

$ersetzen=~s/¡/¡/gs;
$ersetzen=~s/¢/¢/gs;
$ersetzen=~s/£/£/gs;
$ersetzen=~s/¥/¥/gs;
usw.

Jetzt sieht das Resultat aber nicht überall gleich aus.
Auf einigen Servern kommt bei der Eingabe ä ö ü auch ä ö ü (bzw. ä ö ü) raus, auf anderen aber ä ö ¸ (im Quelltxt: ä ö ¸)

Kann mir jemand auf die Sprünge helfen? Ich könnte wahrscheinlich auch
"use URI::Escape;" verwenden, will ich aber nicht, da es überall ohne grosses Installieren von Modulen klappen soll.

Danke für jeden Tipp!

Ciao, sprain

  1. Hallo Sprain,

    Jetzt sieht das Resultat aber nicht überall gleich aus.
    Auf einigen Servern kommt bei der Eingabe ä ö ü auch ä ö ü (bzw. ä ö ü) raus, auf anderen aber ä ö ¸ (im Quelltxt: ä ö ¸)

    Was meinst Du mit "anderen Severn"?
    So ein ähnliches Problem hatte ich auch einmal. Ich musste für einen russischen Internetauftritt Webseiten mit Perl/CGI erstellen. Da gabe es wie gesagt ein ähnliches Problem.

    Was Du mal Probieren solltest ist, dass Du die Einstellungen des Clients (IE, Netzcape,...) im Bezug auf die Sprache überprüfst.

    Was passiert wenn Du (ich gehe mal davon aus, dass Du eine HTML-Seite erstellen möchtest) einen Header in folgender Art verwendest?

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    Bekommst Du dann überall die gleichen "falschen" Zeichen angezeigt?

    1. Hallo Marco

      Was meinst Du mit "anderen Severn"?

      Das heisst auf einer anderen Maschine, ebenfalls mit Linux als Betriebssystem.

      So ein ähnliches Problem hatte ich auch einmal. Ich musste für einen russischen Internetauftritt Webseiten mit Perl/CGI erstellen. Da gabe es wie gesagt ein ähnliches Problem.

      Wie hat sich das denn genu geäussert?

      Was Du mal Probieren solltest ist, dass Du die Einstellungen des Clients (IE, Netzcape,...) im Bezug auf die Sprache überprüfst.

      Könnte eine Idee sein, darf aber nicht der Weg sein. Es muss einfach überall klappen, wo der normale europäische Zeichensatz gelesen werden kann. Genau dafür sind doch die Unicodes da, oder?

      Was passiert wenn Du (ich gehe mal davon aus, dass Du eine HTML-Seite erstellen möchtest) einen Header in folgender Art verwendest?
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

      Das kanns eigentlich auch nicht sein, da ja bereits im Quelltext alles falsch ist. D.h. der Server bzw. das Script übersetzt es manchmal falsch ...

      Gruss, sprain

      1. Hallo!

        Das Problem hat sich erledigt.
        Es lag daran, dass irgendwie beim E-Mailen/Transferieren des Scripts vom Mac zum Windows einige Zeichen 'umgetauft' wurden. z.B. ein Ç in ein § oder ähnlich.

        Komisch, aber naja ...

        Gruss, sprain