67 votes

La fonction php substr() avec utf-8 laisse des marques à la fin

Voici un code simple

et il produit quelque chose comme ceci:

.. ...

J’ai essayé mb_substr() sans succès. Comment faire cela de la bonne façon?

126voto

Kai Qing Points 13588

Les commentaires ci-dessus sont corrects tant que mbstring est activé sur votre serveur.

Voici les documents php:

http://php.net/manual/en/book.mbstring.php

6voto

Botir Ziyatov Points 177

Une alternative appropriée (logique) pour les chaînes unicode ;

Utilisez le PHP: mb_substr - Manuel

4voto

Marco W. Points 2685

Si vos chaînes peuvent contenir des caractères Unicode (multi-octets) et que vous ne souhaitez pas les casser, remplacez-les par `` l’un des deux suivants, selon ce que vous voulez :

Limite à 142 caractères:

Limite à 142 octets:

4voto

tomwilde Points 7976

PHP5 ne comprend pas UTF-8 nativement. Il est proposé pour PHP6, si jamais il sort.

Utilisez les fonctions de chaîne multi-octets pour manipuler des chaînes UTF-8 en toute sécurité.

Par exemple, `` dans votre cas.

2voto

Si vous voulez utiliser la fonction, pour calculer la longueur de la chaîne, que vous voulez retourner et votre chaîne a un codage, vous devez utiliser la fonction:

``

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X