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

  • dl4all
    hat ein Thema erstellt UTF-8: ICONV_ oder MB_ ?.

    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?

  • Tropi
    antwortet
    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.

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    "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.

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Von iconv_ habe ich noch nicht viel gehört, meißt wird mb_ genutzt.

    Einen Kommentar schreiben:

Lädt...
X