суббота, 18 июня 2011 г.

PHP неправильно обрезает строку

Очень часто PHP-разработчики сталкиваются с такой проблемой:
обрезав строку по длине, в конце строки появляется символ "�".

Это происходит из-за того, что строка хранится в кодировке юникода(как правило - utf-8), а функция substr работает только с "однобайтными" кодировками.

Решение - вместо substr использовать функцию mb_substr.

substr($string, $length, $count)
заменяем на
mb_substr($string, $length, $count, 'utf-8')