52 votes

Quelle est la différence entre iconv () et mb_convert_encoding () en PHP?

Quelle est la différence entre iconv() et mb_convert_encoding() en PHP? N'est-on effectuer une meilleure, plus rapide, etc. ( eg. avec certains encodages )? Dans quelles situations serait un être privilégié par rapport à l'autre?

Voici ce que je pense que je sais déjà:

iconv()

  1. inclus avec la plupart des installations de PHP.
  2. lorsque les caractères qui ne peuvent pas être mappé sur le nouveau jeu de caractères sont trouvés, vous pouvez spécifier s'ils sont convertis à un "similaires" caractère ou à ignorer.

mb_convert_encoding()

  1. nécessite généralement l'installation de php-mbstring extension.
  2. est capable de gérer, HTML-ENTITIES, conversion vers et à partir du web codes hex.

Existe-il d'autres différences?

28voto

pelle Points 420

iconv() est juste un wrapper autour de l' iconv() fonction dans le système de la bibliothèque C où PHP est en cours d'exécution (à moins que PHP est construit avec GNU iconv, auquel cas GNU iconv est utilisé). Donc, les performances et les caractéristiques de l' iconv() dépendent de l'endroit où vous utilisez PHP et comment il est construit.

La mise en œuvre de l' mb_convert_encoding(), d'autre part, est inclus dans le PHP (module) de la source. Il comprend une bibliothèque appelée libmbfl qui s'occupe de la conversion réelle. Ainsi, il fonctionne de la même quel que soit l'endroit où vous êtes en cours d'exécution de PHP. Il y a une liste de codage pris en charge ici: http://php.net/manual/en/mbstring.encodings.php

Donc, en résumé, je suppose que vous pourriez dire qu' mb_convert_encoding() est plus fiable à utiliser si vous voulez soutenir les différentes plates-formes. Toutefois, si vous utilisez iconv() sur Linux (par exemple), puis il prend en charge beaucoup plus de codages (voir iconv --list).

La performance relative des fonctions dépend aussi de la spécifique, iconv() mise en œuvre, évidemment.

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