itora web

19Apr/110

contare caratteri con umlaut con php

Non riuscivo a capire come mai uno stesso calcolo che comprendeva la misurazione dei caratteri componenti una stringa desse risultati diversi se eseguito in php o javascript. Dopo aver perso un sacco di tempo a verificare dove fosse l'incongruenza, scopro che strlen si prendeva gioco di me.

$string = "ÄÄüü";
echo strlen($string); //8!!

La umalut (e in generale tutti i caratteri multibyte) non viene letta come ci si aspetta.
Per ovviare a questo, usiamo utf8_decode

echo strlen(utf8_decode($string)); //4
Tagged as: , No Comments