Ankündigung

Einklappen
Keine Ankündigung bisher.

UTF-8: ICONV_ oder MB_ ?

Einklappen

Neue Werbung 2019

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

  • UTF-8: ICONV_ oder MB_ ?

    Hallo,
    ich stelle gerade mein Projekt auf Unicode = UTF-8 um.
    Klappt auch alles.
    Jetzt habe ich gelesen, daß ich unter UTF-8 einige PHP-Standard-Befehle wie z.B. strlen nicht mehr verwenden kann
    Stattdessen soll ich die Alternativen ICONV_ oder MB_ verwenden:
    PHP-Code:
    header'content-type: text/html; charset=utf-8' );
    echo 
    "<h1>Probleme bei Längenermittlung unter UTF-8</h1>";
    echo 
    "<h3>Länge des Strings 'Ä' ermitteln (eigentlich sollte immer Länge=1 rauskommen)</h3>";
    echo 
    "<hr>";
    echo 
    "jetzt die Länge mit dem normalen PHP-Befehl strlen ermittelt: <br>";
    echo 
    strlen('Ä');
    echo 
    "<hr>";
    echo 
    "jetzt die Länge mit ICONV_STRLEN ermittelt: <br>";
    echo 
    iconv_strlen('Ä','utf-8');
    echo 
    "<hr>";
    echo 
    "jetzt die Länge mit MB_STRLEN ermittelt: <br>";
    echo 
    mb_strlen('Ä','utf-8'); 
    Gibt es da bereits einen Standard der sich durchgesetzt hat?
    Oder ist das reine Geschmackssache, ob man ICONV_ oder MB_ nimmt?


  • #2
    Von iconv_ habe ich noch nicht viel gehört, meißt wird mb_ genutzt.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      "Man" nimmt die mb_ Funktionen...

      iconv führt eine Konvertierung durch, die manchmal aber nicht klappen kann, je nachdem welches Quell- und Zielencoding verwendet werden soll. Wie bekannt sein sollte, lassen sich eventuell nicht alle Zeichen von encoding A nach B überführen...

      mb_ Funktionen können mit "MultiByte" Strings umgehen, eine Umwandlung findet nicht statt und ist auch nicht nötig.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Der wesentliche Unterschied wird in den Kommentaren der Manual-Seite festgehalten: http://at1.php.net/manual/de/functio...rlen.php#62320
        Wenn iconv nicht konvertieren kann, wird ein false zurückgegeben, während die Multibyte String-Funktionen die ungültigen Zeichen einfach ignoriert.

        Abgesehen bieten die mb-String Funktionen auch für (fast) alle String-Funktionen einen Konterpart, im Gegensatz zu iconv.

        Kommentar

        Lädt...
        X