utf8_decode auf simplexml_load_string anwenden?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • utf8_decode auf simplexml_load_string anwenden?

    Hallo,

    gibt es eine Möglichkeit auf den kompletten Inhalt einer simplexml_load_string()-Rückgabe utf8_decode anzuwenden?

    $response = file_get_contents($requestString);
    $xml=simplexml_load_string($response);

    Hab schon versucht utf8_decode auf $response sowie $xml anzuwenden aber ohne Erfolg.

    Muss man das wirklich manuell machen, sofern der Service nicht schon von Haus aus die Daten entsprechend liefert?

    Danke,
    Truncate

  • #2
    utf8_decode() erwartet einen String als Parameter, deshalb kannst an die Funktion kein simplexml-Objekt übergeben.

    Aus welchem Grund willst du unbedingt mit dem Daten nach ISO-8859-1?
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Zitat von Quetschi Beitrag anzeigen
      utf8_decode() erwartet einen String als Parameter, deshalb kannst an die Funktion kein simplexml-Objekt übergeben.
      Dann sollte das doch aber vorher schon mit
      $response = file_get_contents($requestString);
      gehen oder nicht?

      Zitat von Quetschi Beitrag anzeigen
      Aus welchem Grund willst du unbedingt mit dem Daten nach ISO-8859-1?
      Weil meine Seite deutsch und ISO-8859-1 ist und auch bleiben soll

      Kommentar


      • #4
        Dann sollte das doch aber vorher schon mit
        $response = file_get_contents($requestString);
        gehen oder nicht?
        Prinzipiell ja. Das wird dir aber aus…

        PHP-Code:
        <?php // Encoding der Quellcode-Datei: UTF-8

        header('Content-Type: text/html; charset=ISO-8859-1');

        echo 
        utf8_decode('Лев Николаевич Толстой');
        …das hier machen:

        Code:
        ??? ?????????? ???????
        Die entsprechenden UTF-8-Zeichen existieren in ISO-8859-1 schlicht und ergreifend nicht.

        Du kannst sie in ISO-8859-1 lediglich als (in vielen Fällen ausschließlich numerische) Entities kodieren.

        PHP-Code:
        <?php // Encoding der Quellcode-Datei: UTF-8

        function JB_utf8_to_html ($data) {
            return 
        preg_replace("/([\\xC0-\\xF7]{1,1}[\\x80-\\xBF]+)/e"'_utf8_to_html("\\1")'$data);
        }

        function 
        _utf8_to_html ($data) {
            
        $ret 0;

            foreach ((
        str_split(strrev(chr((ord($data{0}) % 252 248 240 224 192) + 128) . substr($data1)))) as $k => $v)
                
        $ret += (ord($v) % 128) * pow(64$k);
            if (
        $ret<256) return chr($ret); // no need to convert to entities
            
        return "&#$ret;";
        }

        header('Content-Type: text/html; charset=ISO-8859-1');

        echo 
        JB_utf8_to_html('Лев Николаевич Толстой');
        Code:
        Лев Николаевич Толстой
        (HTML-Quellcode-Ansicht aufrufen, um Entities zu sehen. Die schluckt die Forensoftware.)

        Eingesetzte Funktionen via Suchmaschine von hier:

        - Convert UTF-8 to ISO-8859-1 and HTML Entities

        Möglicherweise gibt es eine vorhandene PHP-Funktion, die das auch leisten kann. Ich weiß es gerade nicht.

        Weil meine Seite deutsch und ISO-8859-1 ist und auch bleiben soll
        Es ist, was es ist, sagt die Liebe? Die Begründung überzeugt mich nicht.
        Zuletzt geändert von mermshaus; 07.07.2011, 04:06.

        Kommentar


        • #5
          „Ein unsichtbarer Feind ist‘s, den ich fürchte,
          Der in der Menschen Brust mir widersteht,
          Durch feige Furcht allein mir fürchterlich.

          Nicht, was lebendig, kraftvoll sich verkündigt,
          Ist das gefährlich Furchtbare. Das ganz
          Gemeine ist‘s, das ewig Gestrige,
          Was immer war und immer wiederkehrt
          Und morgen gilt, weil‘s heute hat gegolten!“


          Schiller

          Kommentar

          Lädt...
          X