Question

Dans Zend Framework, Zend_Validate_StringLength a une propriété de codage qui peut être utilisé pour convertir les différents jeux de caractères (il utilise iconv_set_encoding sur la chaîne).

Pourquoi cette partie de la classe StringLength validateur? Dois-je utiliser avec mes vérifications sur le terrain de la longueur de chaîne pour faire appliquer UTF-8?

Était-ce utile?

La solution

longueurs de chaîne en PHP sont le nombre d'octets prises pour enregistrer la chaîne. Certains utilisent des codages multiples octets (par exemple deux) pour stocker un seul caractère.

Par conséquent, si vous utilisez le codage stockant quelques-uns des caractères dans plusieurs octets (par exemple Unicode UTF-8), vous devez utiliser ce codage pour déterminer correctement la longueur de chaîne. Si vous utilisez les paramètres d'encodage par défaut, vous pouvez obtenir des résultats inexacts.

Cependant, je crois que la valeur par défaut pour tous les composants Zend est UTF-8, qui est la norme de facto dans les applications Web. Pitié, ce n'est pas celui par défaut de PHP (encore).

Autres conseils

En fait, il utilise iconv_set_encoding uniquement pour tester si les supports actuels de serveur spécifié $encoding. La comparaison réelle est faite avec iconv_strlen().

Je ne sais pas que je peux obtenir votre deuxième question. Si vous avez besoin de la longueur de validate - vous devez utiliser ce validateur

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top