Подтвердить что ты не робот

Использование PHP substr() со специальными символами в конце приводит к появлению вопросительных знаков

Когда я использую функцию substr() в PHP, я получаю знак вопроса (квадрат со знаком вопроса - в зависимости от браузера) в конце строки, когда этот последний символ был специальным, например, ë или ö и т.д....

$introtext = html_entity_decode($item->description, ENT_QUOTES, "UTF-8");
$introtext = substr($introtext, 0, 200);

Как я могу избежать этого?

4b9b3361

Ответ 1

Если ваша строка имеет многобайтовое кодирование (например, UTF-8), вы должны использовать mb_substr, чтобы избежать таких проблем:

$introtext=mb_substr($introtext,0,200);

Ответ 2

Это потому, что substr не работает с многобайтовыми символами. substr, вероятно, вырезает многобайтовый символ "пополам". Вместо этого вы должны использовать mb_substr. Также убедитесь, что ваш файл сохранен в UTF-8.

$introtext = mb_substr($introtext, 0, 200);

Ответ 3

Используйте mb_substr

Ответ 4

В случае, если кто-то попробовал предыдущие ответы, но это все равно не сработало

Попробуйте добавить имя Unicode в mb_substr например:

$introtext = mb_substr($introtext, 0, 200, 'utf-8');