Comment obtenir le nombre exact de caractères multi-octets?
Question
j'ai essayé:
mb_strlen('普通话');
strlen('普通话');
les deux produisent la sortie 9, alors qu’il n’ya en réalité que 3 caractères.
Quelle est la bonne façon de compter les caractères?
La solution
vous devez vous assurer de spécifier le codage dans le second paramètre
c'est-à-dire
mb_strlen('普通话', 'UTF-8');
voir le manuel
Autres conseils
Si vous n'avez pas accès à l'extension de chaîne mb, cela fonctionne également (et je pense que c'est plus rapide):
strlen(utf8_decode('普通话')); // 3
Un caractère chinois n’est pas égal à un caractère ascii. mb_strlen est le bon moyen de compter les caractères multi-octets si la chaîne au format UTF-8 est codée.
voir ici: http://www.herongyang.com/PHP-Chinese/ Multibyte-UTF-8-mb_strlen.html
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow