Ankündigung

Einklappen
Keine Ankündigung bisher.

Konvertierung von ASCII zu UTF-8 klappt nicht

Einklappen

Neue Werbung 2019

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

  • Konvertierung von ASCII zu UTF-8 klappt nicht

    Guten Abend,

    ich weis nicht wieso der Inhalt nicht in UTF-8 konvertiert wird.

    Die Ausgabe im ersten echo ist ASCII

    Ich erzwinge eine Konvertierung in UTF-8, aber das zweite echo ist dennoch ASCII.

    Weis Jemand wieso das noch der Fall ist?

    Vielen Dank und schönen Abend.

    Meine PHP Datei ist UTF-8


    PHP-Code:
    $content file_get_contents('http://www.janke-reisen.de/kontakt/impressum.html');
    echo 
    $charset mb_detect_encoding($content);
    $content iconv($charset'UTF-8'$content);
    echo 
    $charset mb_detect_encoding($content); 


  • #2
    Deine Eingabe enthält vermutlich keine Multibyte-UTF-8-Characters. Sonst würde das erste mb_detect_encoding bereits "UTF-8" liefern.

    Beispiel:

    PHP-Code:
    <?php // gespeichert als UTF-8

    $content 'ÄÖÜ';
    echo 
    $charset mb_detect_encoding($content);
    $content iconv($charset'UTF-8'$content);
    echo 
    $charset mb_detect_encoding($content);
    Da die ersten 128 Zeichen (die ASCII 1-Byte-Characters) in ASCII und UTF-8 identisch kodiert werden, ist ein String ohne Multibyte-Characters in UTF-8 binär identisch zum selben String in ASCII. mb_detect_encoding hat deshalb keinen Grund, UTF-8 anzunehmen, wenn ASCII ausreicht.

    Wie zeichnest du in impressum.html denn zum Beispiel Umlaute (in UTF-8 Multibyte-Characters) aus, falls die Datei überhaupt welche enthält?

    Kommentar


    • #3
      hi, danke für die antwort. ich habe keine ahnung welchen zeichensatz die seite selber hat. ich hole die seiten aus der datenbank und parse den content. ich nutze preg_match mit /u also utf-8. deshalb will ich alles in utf-8 konvertieren und es funzt nicht, wenn es ascii ist.

      Zitat von mermshaus Beitrag anzeigen
      Wie zeichnest du in impressum.html denn zum Beispiel Umlaute (in UTF-8 Multibyte-Characters) aus, falls die Datei überhaupt welche enthält?
      Wie kann man die Sonderzeichen auszeichnen? weis nicht genau was du damit meinst

      Kommentar


      • #4
        ...und es funzt nicht, wenn es ascii ist.
        Dann brauchst du auch nichts zu konvertieren, da wie gesagt alle ASCII-Zeichen in UTF-8 identisch kodiert werden wie in ASCII.

        ASCII ist ein winziger, binär kompatibler Teil von UTF-8, wenn man so will.

        Wie kann man die Sonderzeichen auszeichnen? weis nicht genau was du damit meinst
        Ich meinte HTML-Entities, also etwa "&auml;" für "ä". Alle sechs Zeichen von "&auml;" liegen im ASCII-Zeichensatz. In dem Fall hätte mb_detect_encoding eben keinen Grund, UTF-8 anzunehmen. Keine Ahnung, ich kenne den Eingabestring nicht, der dir irgendeine Art von Problem zu bereiten scheint.

        Kommentar


        • #5
          Hängt das jetzt mit der anderen Frage zusammen und brauchte es dafür schon wieder nen neuen Thread? Vermultich sind im 2. Webcontent schon Entities enthalten. Klar werden dann keine Umlaute ersetzt.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Guten Morgen ,

            Es geht mir um das Verständnis, wieso der ascii formatierte Text keine Sonderzeichen ersetzt.

            echo preg_replace("/\ü/","lol",$content);

            funktioniert nicht mit Elke Janke Reisen GmbH - Impressum.

            Und ich verstehe einfach nicht, wieso preg_replace auf einigen Webseiten funktioniert und wieder nicht. (Berücksichtig selbstverständlich HTML-Enti.).

            Content der Site, vielleicht hat noch Jemand eine Idee, ansonsten renn ich gegen die Mauer.


            [MOD: Entfernt]

            Kommentar


            • #7
              Man guck doch in den Quelltext. Und versuch wenigstens, die ANtworten zu verstehen!!
              table width="500" align="center" valign="top" cellspacing="0" cellpadding="0" border="0">
              <tr>
              <td class="w8"><br><b>Gesch&auml;ftsf&uuml;hrer:</b> Elke ..

              </tr>
              </table>
              [MOD] Bitte keine Inhalte posten, die Dir nicht gehören!
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                nikosch vielen dank, sollte mal zum optiker, man renne ich blind durch die welt. habe es mit einem einfachen:
                PHP-Code:
                $content html_entity_decode($content,ENT_QUOTES,'UTF-8'); 
                gelößt. vielen vielen dank euch allen .

                Kommentar

                Lädt...
                X