使用 PHP 的 substr() 在末尾加上特殊字符会导致问号

2022-08-30 16:50:32

当我在PHP中使用substr()函数时,当我在字符串末尾得到一个问号(一个带有问号的正方形 - 取决于浏览器),当最后一个字符是一个特殊的字符时,比如ë或ö,等等......

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

我该如何逃避呢?


答案 1

如果您的字符串具有多字节编码(如 UTF-8),则应使用mb_substr以避免此类问题:

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

答案 2

如果有人尝试了以前的答案,但它仍然不起作用:

尝试在以下位置添加 Unicode 名称:mb_substr

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

推荐