Sprachkodierung und Umlaute

dezz

Mitglied
Hallo!
Habe ein Problem mit der Kodierung und der Ausgabe eines Textes.

Ich lese mit curl() die Ausgabe meiner Webseite A aus und gebe diese auf einer anderen Webseite B aus.
Nun hat Webseite B, die Kodierung UTF-8. Es kommt zu einem Problem:
Die Umlaute werden als Fragezeichen dargestellt.
Bei Webseiten mit der Kodierung z.b windows-1252 oder ISO-8859-1 funktionierts wunderbar, nur bei UTF-8 scheints Probleme zu geben. Habe schon einiges probiert, auch als HTML "Buchstaben" auszugeben (bsp. für ü - &uuml) - Funktioniert in Chrome, aber nicht in Firefox.

Hat jemand einen Vorschlag, wie man das Ganze lösen könnte?
 
Es git diverse Funktionen direkt von PHP: http://www.php.net/manual/de/function.utf8-encode.php, http://de3.php.net/manual/de/function.mb-convert-encoding.php

Mit HTML-Entities sollte es eigentlich in allen Browsern funktionieren. Evtl. auch per http://php.net/manual/de/function.htmlentities.php diese erzeugen.

Desweiteren ist es meines Erachtens sinnvoll, sich für eine Codierung zu entscheiden und diese dann konsequent auf allen Systemen/Anwendungen/Seiten usw. einzuhalten. Ich habe mich für UTF-8 entschieden und habe alles, wo es nur möglich ist, so eingestellt, dass UTF-8 codierte Daten entstehen.
 
Sind deine Dateien auch UTF 8 kodiert gespeichert? Aber darauf achten ohne BOM zu speichern, sonst kann das zu weiteren Problemen kommen.
 
@nepda

Hatte (glaube ich zumindest) alle Funktionen ausprobiert, werde dies morgen nochmal tun.

@m0dpad

Es wird in ISO-8859-1 gespeichert.
Ich hab kein Einfluss darauf welche Kodierung die Webseiten B haben, deswegen ists auch schwierig.
 
Es wird in ISO-8859-1 gespeichert.
Ich hab kein Einfluss darauf welche Kodierung die Webseiten B haben, deswegen ists auch schwierig.

Genau, du hast keinen Einfluss auf andere Webseiten. Daher musst du, wenn du anderen Daten zur Verfügung stellst, in einem einheitlichen Format daherkommen. Die anderen Webseiten müssen notfalls von deinem Encoding in ihr eigenens übertragen.

Da viele UTF-8 benutzen, ist es ratsam, das du selbst auch UTF-8 benutzt.

Wenn jemand unbedingt ISO verwenden will, dann muss er deinen UTF-8-Stream eben von UTF-8 nach ISO konvertieren. Du musst nur mitteilen, dass du UTF-8 benutzt.

Ich habe dein Eingangsposting nicht verstanden:

Du hast eine Webseite A, welche in ISO ist, jemand anders lädt mittels curl() Daten von deiner Webseite A zu seiner Webseite B, welche in UTF-8 vorliegen.

Wenn das tatsächlich so ist, musst der Inhaber von B den Stream von ISO nach UTF-8 konvertieren. Du könntest allerhöchstens, abhängig der Header, die mit curl() an deine Webseite a gesendet werden, entscheiden, welches Format zu ausliefern willst. Der entsprechende Header dafür dürfte, wenn das darunter liegende Protokoll HTTP bleibt, Accept-Encoding sein. Das primäre Encoding in diesem String müsstest du dann ausliefern.

Hoffe geholfen zu haben
 
Zurück