1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

RSS auslesen macht mit Sonderzeichen Probleme

Dieses Thema im Forum "PHP & Co." wurde erstellt von _linx_, 24.10.09.

  1. _linx_

    _linx_ Kleiner Weinapfel

    Dabei seit:
    04.01.09
    Beiträge:
    1.125
    N'Abend miteinander...

    Ich versuche gerade, den Apfeltalk RSS auszulesen - zu welchem Grund auch immer. Nun ergibt sich aber ein Problem: Es gibt Probleme mit Sonderzeichen:
    [​IMG]

    Empfangen wird der Inhalt der Datei mit file_get_contents (im Moment, ich weder aber umrüsten auf fsockopen). Die Zeile sieht so aus:

    [​IMG]

    Auf eine Verwendung von htmlspecialchars() bzw htmlentities() möchte ich bewusst verzichten, da hier im RSS z.B. HTML-Code für den Inhalt verwendet wird.

    Gibt es da eine Möglichkeit, diese Sonderzeichen umzuwandeln?
     
  2. ImperatoR

    ImperatoR Ananas Reinette

    Dabei seit:
    02.12.06
    Beiträge:
    6.235
    Speicherst du den ausgelesenen Inhalt dann in eine Datenbank, oder was machst du damit?
     
  3. Slashwalker

    Slashwalker Winterbanana

    Dabei seit:
    15.05.06
    Beiträge:
    2.190
    Also ich bin ja nicht der PHP Crack, aber laut Doc konvertiert utf8_encode() von ISO-8859-1 in utf-8. Die AT RSS Feeds sind aber schon utf-8, daher verhaut es die Umlaute. Ich würde wetten, wenn du das utf8_encode() weglässt, funktioniert es.
     
  4. _linx_

    _linx_ Kleiner Weinapfel

    Dabei seit:
    04.01.09
    Beiträge:
    1.125
    Unter anderem. Das primäre Element ist aber, dass mir der Inhalt zugemailt wird. Geht mir leichter als immer ein RSS-Programm zu öffnen. Das ausserdem nicht von iPhone <-> Mac synchronisiert werden kann.

    @Slashwalker: Dies habe ich auch schon versucht. Die Datenbank habe ich auch auf utf8_general_ci gestellt. Irgendwie geht da etwas beim file_get_contents() falsch...

    edit: Oder eben doch nicht. Ich habe nun mal folgendes getestet: mit file_get_contents() Inhalt holen, dann mit str_replace alle ü durch ue ersetzen und die Änderungen zählen. Ergibt 80 Änderungen. Daraus folge ich, dass der Text richtig ankommt, aber danach etwas falsch ist. Mal sehen...

    edit2: Der Fehler liegt vermutlich an der XML-Klasse. Wenn ich aus dieser einen Text, der ein ü enthalten muss, die ü-s zählen lasse, komme ich auf 0.

    edit3: Es ist wirklich komisch... Wenn ich mir den Text ausgeben lasse, bevor ich ihn in die Datenbank eintrage - mit UTF-8 als Charset an den Browser gesendet - kommen alle Sonderzeichen korrekt an. In der Datenbank sind sie allerdings falsch.
    Wenn ich nun ein htmlspecialchars() mache, bevor ich den Text in die DB eintrage, sind alle Zeichen (<, >, &, ...) ersetzt, aber mit den Sonderzeichen äöü hat er nichts angestellt.

    edit4: ICH KONNTE DAS PROBLEM LÖSEN!!! Es lag daran, dass MySQL meinte, ich sende latin1, ich aber ja utf-8 gesendet habe. Darauf gebracht hat mich eine Google-Suche nach "MySQL utf8". Erklärt wird das ganze hier: http://www.gerd-riesselmann.de/softwareentwicklung/php-und-utf-8-eine-anleitung-teil-1-mysql . Nun geht es, MySQL speichert meine Daten so, wie ich will.
     
    #4 _linx_, 24.10.09
    Zuletzt bearbeitet: 25.10.09

Diese Seite empfehlen