3d: Zeichensatz von einem String ändern.

Hallo,
Ich habe eine Funktion erstellt, die der Meta Description von externe Html Dateien einliest, und dann für Benutzer zeigt.
im index.php ist die Zeichenkodierung UTF-8. Wenn ich die Meta Tag von einem Website die Kodierung auch UTF-8 importiere, wird die Meta richtig gezeigt. aber wenn der Dateien andere Charset hat, dann wird es Falsch gezeigt.
Wie kann ich wissen? welche Zeichensatz  der importierte Meta Tag hat.
weil ich sie dann so umwandeln kann.
 iconv("ISO-8859-1", "UTF-8", "Meta Tag");

Gruß

  1. Hi,

    Ich habe eine Funktion erstellt, die der Meta Description von externe Html Dateien einliest, und dann für Benutzer zeigt.

    Dateien, oder Ressourcen?

    Wie kann ich wissen? welche Zeichensatz  der importierte Meta Tag hat.

    Bei ueber HTTP abgerufenen Ressourcen zunaechst mal den Content-Type-Header auswerten, als Fallback (wenn dieser keine Charset-Angabe enthaelt) das http-equiv Meta-Element auswerten.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Ich habe eine Funktion erstellt, die der Meta Description von externe Html Dateien einliest, und dann für Benutzer zeigt.

      Dateien, oder Ressourcen?

      »»
      Ein Html Seite. also man setzt ein Link, und dann werden die enthaltene Information von Meta Tage importiert.

      Wie kann ich wissen? welche Zeichensatz  der importierte Meta Tag hat.

      Bei ueber HTTP abgerufenen Ressourcen zunaechst mal den Content-Type-Header auswerten, als Fallback (wenn dieser keine Charset-Angabe enthaelt) das http-equiv Meta-Element auswerten.

      meinst Du, ich muß file_Get_contents von dem Seite aufrufen, und die Charset untersuche?
      gibt es keine einfache Methode, die Kodierung von einem String identifiziert. und wird bestimmt wie der Iconv Befehl seien muss.
      Gruß

      1. echo $begrüßung;

        gibt es keine einfache Methode, die Kodierung von einem String identifiziert.

        Nein, denn um etwas Kodiertes zu dekodieren benötigt man das Wissen über den Schlüssel. Ohne Schlüssel kannst du nur raten und dabei auch daneben liegen. Es gibt keine Methode, die verwendete Zeichenkodierung einwandfrei und automatisch zu ermitteln. Man kann lediglich einige Mehrbyte-Kodierungen ausschließen, wenn der ankommende Datenstrom nicht den Regeln dieser Kodierung entspricht. Übrig bleiben genügend anderen Kodierungen, die es alle sein können. Soweit die Theorie.

        In der Praxis beschränken sich die vorkommenden Kodierungen meist auf einige wenige, beispielsweise auf UTF-8 und ISO-8859-1. Wenn eine Zeichenkette kein gültiges UTF-8 ist, dann wird es ISO-8859-1 sein. Wenn eine typische UTF-8-Sequenz in dem String vorkommt, wird es mit geringem Restrisiko UTF-8 sein. Wenn nur Zeichen unterhalb 0x80 vorkommen, dann ist es sicher ASCII und damit sowohl ISO-8859-x als auch UTF-8.

        echo "$verabschiedung $name";