Консультация № 173177
11.10.2009, 15:55
0.00 руб.
0 1 1
Здравствуйте. У меня такой вопрос. Мой сайт написан в кодировке UTF-8, нужна функция, которая бы вырезала из строки с текстом отрезок заданной длины с начала строки (строка может состоять как из русских, так и из латинских символов). Например, есть строка "Один два три четыре", нужно получить 10 первых символов: "Один два т". Проблема в том, что в кодировке UTF-8 русские символы имеют ширину 2 байта, а латиница - 1 байт. Поэтому в зависимости от содержимого исходной строки "отрез" может произойти как по границе символа (это хорошо), так и посередине двухбайтного русского символа. В последнем случае на экране в последней позиции выводится нечитаемый символ. Подскажите пожалуйста, как сделать, чтобы разделение строки в кодировке UTF-8 было корректным.

Выделение делаю так:
Код:
$result = substr($source, 0, length);

Обсуждение

Неизвестный
11.10.2009, 16:16
общий
это ответ
Здравствуйте, megaqwer.

Для этого необходимо использовать функции mbstring - http://www.php.net/manual/en/book.mbstring.php
в частности mb_substr()
5
Большое спасибо.
Форма ответа