Ответ 1
Разница между strlen()
и mb_strlen()
заключается в том, что второе относится к многобайтовым символам. Это означает, что это реальный счет персонажа. Первый предполагает, что строка всегда находится в ascii, что также означает, что она всегда возвращает размер в байтах (очень полезно при обработке двоичных "строк" ).
Насколько я понимаю, iconv_strlen()
очень похож на mb_strlen()
, но не работает на неудачных последовательностях символов, в отличие от mb_strlen()
, который просто игнорирует их. И он использует iconv
-библиотеку (очевидно;)).