• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

RSS auslesen macht mit Sonderzeichen Probleme

_linx_

Kleiner Weinapfel
Registriert
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:
Bildschirmfoto+2009-10-24+um+19.17.08.png


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

Bildschirmfoto+2009-10-24+um+19.19.52.png


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?
 

ImperatoR

Roter Astrachan
Registriert
02.12.06
Beiträge
6.261
Speicherst du den ausgelesenen Inhalt dann in eine Datenbank, oder was machst du damit?
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
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.
 

_linx_

Kleiner Weinapfel
Registriert
04.01.09
Beiträge
1.125
Speicherst du den ausgelesenen Inhalt dann in eine Datenbank, oder was machst du damit?

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.
 
Zuletzt bearbeitet: