Anzeige:
Ergebnis 1 bis 10 von 10

Thema: Perlscript Datenbankdaten Umlaute umwandeln

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.07.2001
    Ort
    Hamburg
    Beiträge
    7

    Perlscript Datenbankdaten Umlaute umwandeln

    Hallo,

    ich habe folgendes Problem:

    Ich habe ein Perlskript, mit dem ich aus einer Datenbank Inhalte als RSS-Feed darstellen möchte. Nun beschweren sich aber die Feed-Reader, dass die Umalute nicht umgewandelt sind.
    Ich bekomme aus der Datenbank nicht das ä sondern ä.

    Wie kann ich nun innerhalb des Scriptes die Umlaute in Sonderzeichen umwandeln?

    Gruß
    Listo

  2. #2
    Registrierter Benutzer
    Registriert seit
    05.02.2006
    Beiträge
    116
    Jag' das was Du aus der Datenbank bekommst durch HTML::Entities (siehe http://search.cpan.org)

  3. #3
    Registrierter Benutzer
    Registriert seit
    01.07.2001
    Ort
    Hamburg
    Beiträge
    7
    Hallo,

    danke für die Antwort.
    Aber ich jage die Ausgaben da schon durch

    use HTML::Entities;
    decode_entities($Variable);
    encode_entities($Variable);

    Noch einmal zu Verdeutlichung:
    Aus der Datenbank bekomme ich $auml;, als Ausgabe hääte ich aber lieber ä.


    Gruß
    Listo

  4. #4
    Registrierter Benutzer
    Registriert seit
    05.02.2006
    Beiträge
    116
    So musst Du es machen:
    Code:
    C:\>perl -MHTML::Entities -e "my $var = q~ä~; my $var2 = decode_entities($var); print $var2"

  5. #5
    Registrierter Benutzer
    Registriert seit
    01.07.2001
    Ort
    Hamburg
    Beiträge
    7
    Danke reneb,

    aber ich rufe das Script mit einem Browser auf, da das Script auf einem Webserver abgelegt ist.

    Ich habe darin folgende Einträge um die Umlaute wieder zurückzuwandeln:

    use HTML::Entities;
    decode_entities($Topic);
    encode_entities($Topic);
    decode_entities($Datestring);
    encode_entities($Datestring);
    decode_entities($Source);
    encode_entities($Source);
    decode_entities($ID);
    encode_entities($ID);
    decode_entities($Trailer);
    encode_entities($Trailer);
    decode_entities($Content);
    encode_entities($Content);
    decode_entities($Datum);
    encode_entities($Datum);


    Wie bekomme ich nun aus den Variablen die Umlaute (&auml ind ä umgewandelt.

    Tut mir leid, bin aber absoluter Perl-Neuling. Kenne mich zwar mit HTML und PHP aus, jedoch nicht mit Perl.

    Gruß
    Listo

  6. #6
    Registrierter Benutzer
    Registriert seit
    05.02.2006
    Beiträge
    116
    $Topic = decode_entities($Topic);

    Du muss den Rückgabewert nehmen...

    Einfach nur die Funktion aufzurufen bringt da nichts...

  7. #7
    Registrierter Benutzer
    Registriert seit
    01.07.2001
    Ort
    Hamburg
    Beiträge
    7
    Hallo,

    habe das Script sowiet verändert.
    Bekomme im Quelltext jedoch immer noch folgendes angezeigt:

    Über den Wolken

    Es sollt dort aber stehen:

    Über den Wolken

    Gruß
    Listo

  8. #8
    Registrierter Benutzer
    Registriert seit
    05.02.2006
    Beiträge
    116
    Code:
    ~ 2> perl -MHTML::Entities -e ' my $var = q~Über das Wetter~; my $test = decode_entities($var); print $test '
    Zeig' doch mal Deinen Code...

  9. #9
    Registrierter Benutzer
    Registriert seit
    01.07.2001
    Ort
    Hamburg
    Beiträge
    7
    Hallo reneeb,

    hier der Auszug aus dem Code:

    Code:
    use HTML::Entities;
    $Topic = decode_entities($Topic);
    $Topic = encode_entities($Topic);
    print "<item><title>". $Topic . "</title>";
    Gruß
    Listo

  10. #10
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Du rufst in all Deinen Beispielen immer erst decode() und danach wieder encode() auf. Was willst Du damit bezwecken?

    Schau Dir nochmal genau das letzte Beispiel voin Renee an bzw. die Doku zu HTML::Entities.

    Der Vorgang ü -> &uuml; ist decode().

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •