Ответ 1
iconv()
- это всего лишь оболочка вокруг функции iconv()
, найденной в библиотеке системы C, где работает PHP (если PHP не построен с помощью GNU iconv, в этом случае используется GNU iconv). Таким образом, производительность и функции iconv()
зависят от того, где вы используете PHP и как он построен.
Реализация mb_convert_encoding()
, с другой стороны, включена в исходный код PHP (модуля). Он включает библиотеку под названием libmbfl, которая обрабатывает фактическое преобразование. Таким образом, он работает одинаково независимо от того, где вы используете PHP. Здесь приведен список поддерживаемых кодировок: http://php.net/manual/en/mbstring.encodings.php
Итак, в целом, я думаю, вы могли бы сказать, что mb_convert_encoding()
более надежно использовать, если вы хотите поддерживать разные платформы. Однако, если вы используете iconv()
в Linux (например), то он поддерживает намного больше кодировок (см. iconv --list
).
Относительная производительность функций также зависит от конкретной реализации iconv()
, очевидно.