Archiv verlassen und diese Seite im Standarddesign anzeigen : 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
Jag' das was Du aus der Datenbank bekommst durch HTML::Entities (siehe http://search.cpan.org)
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
So musst Du es machen:
C:\>perl -MHTML::Entities -e "my $var = q~ä~; my $var2 = decode_entities($var); print $var2"
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 (ä) ind ä umgewandelt.
Tut mir leid, bin aber absoluter Perl-Neuling. Kenne mich zwar mit HTML und PHP aus, jedoch nicht mit Perl.
Gruß
Listo
$Topic = decode_entities($Topic);
Du muss den Rückgabewert nehmen...
Einfach nur die Funktion aufzurufen bringt da nichts...
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
~ 2> perl -MHTML::Entities -e ' my $var = q~Über das Wetter~; my $test = decode_entities($var); print $test '
Zeig' doch mal Deinen Code...
Hallo reneeb,
hier der Auszug aus dem Code:
use HTML::Entities;
$Topic = decode_entities($Topic);
$Topic = encode_entities($Topic);
print "<item><title>". $Topic . "</title>";
Gruß
Listo
michael.sprick
03-04-2007, 12:36
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 ü -> ü ist decode().
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.