J'ai essayé:Comment obtenir le nombre exact de caractères multi-octets?
mb_strlen('普通话');
strlen('普通话');
les deux sortie 9, alors qu'en fait il n'y a que 3 caractères.
Quelle est la bonne façon de compter les caractères?
J'ai essayé:Comment obtenir le nombre exact de caractères multi-octets?
mb_strlen('普通话');
strlen('普通话');
les deux sortie 9, alors qu'en fait il n'y a que 3 caractères.
Quelle est la bonne façon de compter les caractères?
vous devez vous assurer de spécifier l'encodage dans le second paramètre
-à-dire
mb_strlen('普通话', 'UTF-8');
voir le manual
Un caractère chinois ne est pas égal à un caractère ascii. mb_strlen est la bonne façon de compter les caractères multi-octets si la chaîne en UTF-8 est encodée.
voir ici: http://www.herongyang.com/PHP-Chinese/Multibyte-UTF-8-mb_strlen.html
Si vous n'avez pas accès à l'extension de chaîne mb cela fonctionne aussi (et je crois qu'il est plus rapide):
strlen(utf8_decode('普通话')); // 3