cristiand: ISO-8859 in utf8 umwandeln

Hallo,
ich schreibe gerade ein Skript für mein cms, welches die referres verschiedener Suchmaschinen auswertet.
Die entsprechenden Suchbegriffe (in den google referres) werden jedoch etwas seltsam dargestellt und müssen erst in das Format utf8 umgewandelt werden:

%22Nieders%C3%A4chsische Technische Hochschule%22

Gibt es in php irgendwie die Möglichkeit das Ding automatisch umzuwandeln?

  1. Hallo,

    Die entsprechenden Suchbegriffe (in den google referres) werden jedoch etwas seltsam dargestellt und müssen erst in das Format utf8 umgewandelt werden:

    %22Nieders%C3%A4chsische Technische Hochschule%22

    urldecode(), dann hast du einen UTF-8-String.

    Im Übrigen unterstützt Google verschiedene Kodierungen, du bekommst nicht immer Referrer, wo die Suchbegriffe UTF-8-kodiert sind. Die verwendete Kodierung steht im GET-Parameter »ie« (für Input Encoding).

    Mathias

    1. urldecode(), dann hast du einen UTF-8-String.

      Hab ich gemacht, jetzt hab ich folgende Zeichen:

      "Niedersächsische Technische Hochschule"

      im google referrer steht übrigens ie=utf-8

      1. Hallo,

        urldecode(), dann hast du einen UTF-8-String.

        Hab ich gemacht, jetzt hab ich folgende Zeichen:

        "Niedersächsische Technische Hochschule"

        Willst du damit fragen: Wie bekomme ich »Ã¤« zu »ä«?

        Das ist halt ein UTF-8-kodierter String interpretiert als ISO-8859-1 (z.B. durch Einbettung in ein HTML-Dokument, das ISO-8859-1-kodiert ist).

        Willst du das jetzt noch in ISO-8859-1 umwandeln? Dafür gäbe es utf8_decode().

        Mathias

      2. Lieber christiand,

        urldecode(), dann hast du einen UTF-8-String.

        Hab ich gemacht, jetzt hab ich folgende Zeichen:

        "Niedersächsische Technische Hochschule"

        im google referrer steht übrigens ie=utf-8

        PHP arbeitet intern nicht immer mit UTF-8 - leider! Du kannst einen String daraufhin überprüfen, ob er UTF-8 oder ISO-8859-1 ist. Ich selbst hatte im Forum einmal nach dieser Funktion gesucht.

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. echo $begrüßung;

    %22Nieders%C3%A4chsische Technische Hochschule%22
    Gibt es in php irgendwie die Möglichkeit das Ding automatisch umzuwandeln?

    Das ist eine URL-Kodierung. Dafür gibt es in den URL Functions die Funktionen urlencode() und urldecode().

    echo "$verabschiedung $name";

  3. Erstmal würde ich prüfen, in welchem Zeichensatz der Rechner der Entwicklung und der Rechner der Produktion laufen. Es kann auch notwendig sein, alles nach ISO-8859-10 zu wandeln. In welchem Zeichensatz werden denn die Scripte geschrieben?

    %C3%A4 interpretiert als URL-Encoded und UTF-8 ist ein ä !

    Hängt die Schreibweise der URL nicht vom Zeichnsatz des Rechners ab, auf dem die Datei liegt? Dann kann man auch UTF-8 nicht immer erwarten...

    Hallo,
    ich schreibe gerade ein Skript für mein cms, welches die referres verschiedener Suchmaschinen auswertet.
    Die entsprechenden Suchbegriffe (in den google referres) werden jedoch etwas seltsam dargestellt und müssen erst in das Format utf8 umgewandelt werden:

    %22Nieders%C3%A4chsische Technische Hochschule%22

    Gibt es in php irgendwie die Möglichkeit das Ding automatisch umzuwandeln?