Ответ 1
Если ваша строка имеет многобайтовое кодирование (например, UTF-8), вы должны использовать mb_substr
, чтобы избежать таких проблем:
$introtext=mb_substr($introtext,0,200);
Когда я использую функцию substr() в PHP, я получаю знак вопроса (квадрат со знаком вопроса - в зависимости от браузера) в конце строки, когда этот последний символ был специальным, например, ë или ö и т.д....
$introtext = html_entity_decode($item->description, ENT_QUOTES, "UTF-8");
$introtext = substr($introtext, 0, 200);
Как я могу избежать этого?
Если ваша строка имеет многобайтовое кодирование (например, UTF-8), вы должны использовать mb_substr
, чтобы избежать таких проблем:
$introtext=mb_substr($introtext,0,200);
Это потому, что substr не работает с многобайтовыми символами. substr, вероятно, вырезает многобайтовый символ "пополам". Вместо этого вы должны использовать mb_substr. Также убедитесь, что ваш файл сохранен в UTF-8.
$introtext = mb_substr($introtext, 0, 200);
Используйте mb_substr
В случае, если кто-то попробовал предыдущие ответы, но это все равно не сработало
Попробуйте добавить имя Unicode в mb_substr
например:
$introtext = mb_substr($introtext, 0, 200, 'utf-8');