mb_strlen è un sostituto adatto per iconv_strlen
-
20-09-2019 - |
Domanda
Cioè, se sto codificando qualcosa interamente in PHP4?O forse dovrei usare invece una funzione personalizzata o una classe/estensione per contare il numero di caratteri in una stringa multibyte?
L'unica differenza che riesco a notare è che mb_string elimina le sequenze errate, mentre iconv_strlen no.
Soluzione
Se vuoi un sostituto immediato per il semplice strlen, usa mb_strlen poiché restituisce sempre un int.Questo è però molto discutibile (la correttezza di iconv rispetto alla tolleranza di mb), ma in pratica la tolleranza agli errori di mb_strlen mi è stata più utile.Assicurati solo di configurare mb sulla codifica desiderata in php.ini o in una posizione centrale nella tua applicazione.
Il supporto Unicode in PHP è in una brutta posizione, bisogna essere consapevoli di molte insidie ed eccezioni.Avendo effettuato un passaggio completo di diverse applicazioni di grandi dimensioni e dei relativi dati utente a UTF-8, potrei piangere a dirotto.